2012-06-20 87 views
1

this question,下面的代码用于 -为什么这个jQuery选择器工作?它基于什么?

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

到ID jcontent的父内选择button1类的按钮。

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

+0

$(“。button1”,parent)'与parent.find('。button1')'实际上是一样的。 – Jasper

+0

我发誓你跟着我:-p保持哈哈! –

+0

我喜欢jQuery Mobile的问题,因为他们的答案很容易偏离标准的JS答案。 – Jasper

回答

6

这是core method callcontext参数。

参数被描述为:

DOM元素,文档,或jQuery的如上下文中使用

然后还有其与开始标记的一个部分“选择上下文中,”:

默认情况下,选择器在DOM文档根处开始执行搜索。但是,可以通过对$()函数使用可选的第二个参数来为搜索提供备用上下文。

+0

优秀的答案;谢谢! –

5

第二个参数是选择器上下文:匹配选择器的DOM元素,文档或jQuery对象。在没有这个参数的情况下,假设文档根目录。

以下声明:

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

是相同书写**:

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

和(在这种情况下)产生的结果相同,这一点:

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

**如上所述here

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

+0

也是一个很好的答案 - 如果可以的话,会接受两个。谢谢! –

相关问题