首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery类结构- ES6 JS链

jQuery类结构- ES6 JS链
EN

Stack Overflow用户
提问于 2016-06-09 15:01:19
回答 1查看 192关注 0票数 0

这是我在StackOverflow上的第一篇文章,所以开始我很抱歉我的英语不太流利;)但是我试着用我的问题来解释。

这里是一个活生生的例子

http://codepen.io/anon/pen/JKGbdE

代码语言:javascript
运行
复制
class S {
        constructor(selectors) {
            let self = this;

            
            this.elements(selectors);
        }

        elements(selectors) {
            this.selectors = selectors;

              
            let result = document.querySelectorAll(this.selectors);

            if( result.length == 1 ) {
                result = result[0];

                this.element = result;
            } else {
                this.elements = [].slice.call(result);
            }

            this.nodes = result;

            return this.nodes;
        }

        parent() {
            let self = this;


            if( !!this.element ) {
                
                this.nodes =  this.element.parentNode;

            } else {

                this.elements.forEach = (item, key) => {
                    self.elements[key] = item.parentNode;
                };

                this.nodes =  this.elements;
            }

            return this.nodes;
        }


        result(a) {
            return this.nodes;
        }
    }

    window.$ = (selectors) => {
        let el = new S(selectors);


        return el;
    };
 

    console.log('first ex: ', $('#el') )
    console.log('second ex: ', $('#el').parent() )
代码语言:javascript
运行
复制
<html>
  <body>
    <div id="el">test</div>
    
  </body>
</html>

如果打开浏览器控制台,您将看到如下所示:

日志第一前任:-

代码语言:javascript
运行
复制
S {selectors: "#el", element: <div id="el">, nodes: <div id="el">, …} 

日志第二任前任:-

代码语言:javascript
运行
复制
<body>…</body>

第二个例子是OK。我只想返回一个HTML节点。在第一个示例中,它应该只返回<div id="el />

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-09 15:17:04

first ex:中,您将返回new S(...)second ex: - this.nodes (DOM对象)。

除非扩展JS操作,否则不能期望获得DOMObject作为所有子函数的响应-- jQuery也不能给您这种可能性。

试试console.log(jQuery('.anything')) -它还返回一个将DOM对象作为项的对象(确切地说,索引为0)。

您应该更改您的代码,以便它始终返回S对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37729635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档