2

jQuery 使用以下语句将自身的一个版本传递给全局范围:

window.jQuery = window.$ = jQuery;

如this SO Post所示。

查看jQuery 源代码,我们可以看到定义在 jQuery 的顶级范围内,并且定义如下:

// Define a local copy of jQuery
jQuery = function( selector, context ) {
    // The jQuery object is actually just the init constructor 'enhanced'
    return new jQuery.fn.init( selector, context, rootjQuery );
},

选择器的使用似乎非常简单:只需传入一个字符串即可从 DOM 中选择一个或多个元素。

但是,如何正确使用上下文参数呢?

4

1 回答 1

5

来自 jQuery 手册:

jQuery()

[...]

选择器上下文

默认情况下,选择器从文档根目录开始在 DOM 中执行搜索。但是,可以使用 $() 函数的可选第二个参数为搜索提供替代上下文。例如,要在事件处理程序中进行搜索,可以像这样限制搜索:

$('div.foo').click(function() { $('span', this).addClass('bar'); });

当对 span 选择器的搜索仅限于 this 的上下文时,只有单击元素内的 span 才会获得附加类。

在内部,选择器上下文是使用 .find() 方法实现的,因此$('span', this)等价于$(this).find('span').

请注意,jQuery 会查看其参数的存在和类型并采取相应措施。

于 2012-08-25T20:37:48.367 回答