1

这个问题中,使用了以下代码 -

var parent = $("#jcontent"); 
var button1 = $(".button1", parent) ;

button1在 id 的父级中选择一个类按钮jcontent

为什么这行得通?将 jQuery 对象作为参数传递给 jQuery 选择器如何告诉它在该对象中进行选择?有人可以链接到解释此功能的文档吗?

4

2 回答 2

6

它是核心方法调用context的参数。

参数描述为:

用作上下文的 DOM 元素、文档或 jQuery

然后有一个标有“选择器上下文”的部分,其开头是:

默认情况下,选择器从文档根目录开始在 DOM 中执行搜索。但是,可以使用 $() 函数的可选第二个参数为搜索提供替代上下文。

于 2012-06-20T20:05:31.417 回答
5

第二个参数是选择器上下文:选择器在其中匹配的 DOM 元素、文档或 jQuery 对象。如果没有此参数,则假定为文档根。

以下声明:

var button1 = $(".button1", parent); // parent = $("#jcontent")

和写**一样:

var button1 = parent.find(".button1"); // parent = $("#jcontent")

并且(在这种情况下)产生与此相同的结果:

var button1 = $("#jcontent .button1");

** 如此所述:

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

于 2012-06-20T20:07:51.077 回答