jQuery选择器的多个参数?


112

我只是在看jQueryUI按钮插件,并注意到了这一点

$("button, input:submit, a", ".demo").button();

我从未见过这样的事情。这就像在一个jQuery选择器中进行多次选择吗?

Answers:


172

第二个参数(".demo"在您的示例中)是上下文,基本上,您的选择器被限制为仅匹配确定上下文的后代:

$(expr, context)

等效于使用该find方法:

$(context).find(expr)

看一下jQuery函数的文档:

选择器上下文

默认情况下,选择器从文档根目录开始在DOM中执行搜索。但是,可以通过使用$()函数的可选第二个参数为搜索提供备用上下文。例如,如果我们希望在回调函数中搜索元素,则可以限制该搜索:

$('div.foo').click(function() {
  $('span', this).addClass('bar');
  // it will find span elements that are
  // descendants of the clicked element (this)
});

还要注意,您发布的选择器"button, input:submit, a"称为多重选择器,您可以在其中指定任意数量的选择器以将它们组合为单个结果,只需用逗号将它们分开即可。


酷从来不知道。当我想像类部门那样限制发言时,它不会搜索整个页面,我只是做了类似$('#id .class')的操作
chobo2 10-4-20

这确实是从您本来想看的源头上倒过来的。我希望第一个arg是超类,然后是将其缩小范围的子类。呃,好吧。
light24bulbs 2013年

3
如果定义上下文,浏览器会更快吗?
安德列斯SK
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.