1

我跳过了键入时调用的jQuery源代码的不同区域:

$('.foo')

或者

$('#foo')

尝试确定 jQuery 如何解析选择器(我假设为 charAt() )但想验证。

我到了这里:

    if ( selector.nodeType ) {
        this.context = this[0] = selector;
        this.length = 1;
        return this;
    }

但我有点卡在什么

selector.nodeType

做。该参考资料说 nodeType 几乎可以是任何东西......那么他们到底在检查什么?

jQuery API进一步打破了可能性。

总之,这个代码片段试图完成关于选择器变量的什么?

4

1 回答 1

6

nodeType表明传递给 jQuery 选择器的对象是一个 DOM 节点(通常是一个元素)。例如,这允许以下构造:

$(document)

document是表示文档的对象。$(document)基于该元素构建一个 jQuery 对象。测试nodeType意味着 jQuery 可以检测参数是否是一个元素,如果是,则简单地基于该元素构建选择。

您还可以通过常见的结构看到这一点$(this)

$('a').on('click', function() {
    console.log($(this).text()); // builds a jQuery selection based on the this
                                 // object, which is the DOM element that was 
                                 // clicked
});
于 2012-08-27T18:36:04.160 回答