jQuery选择器带有第二个参数是什么意思?

时间:2014-11-05 00:18:07

标签: jquery

当我读这本书时,我发现我无法理解这个

$("span.task-name",$task).text(taskName); 

task-name是span标记的类

有人可以帮助我吗? 这样做的确切含义是什么?

4 个答案:

答案 0 :(得分:2)

第二个参数用于上下文:http://api.jquery.com/jquery/#jQuery1

它类似于.find(),它选择jquery并尝试使用新的选择器对其进行优化。例如,如果您想在span.span1中选择#div1,则可以执行以下操作:

$("span.span1", "#div1");

这与:

相同
$("#div1 span.span1");

在两者之间,性能上只有很小的差异,但功能上没有差异。

答案 1 :(得分:0)

主要的jQuery函数有一些不同的签名,你在这里展示的是一个上下文:

$( ".foo", "#bar" ); // Same as $( "#bar .foo" ), or $( "#bar" ).find( ".foo" );

这将在 .foo中找到#bar 的实例。或者,您可以传入一个对象,该对象具有适用于新创建元素的属性(和更多):

$( "<div></div>", { html: "<b>Hi</b>" } ); // $( "<div></div>" ).html( "<b>Hi</b>" );

这类似于在新创建的$.fn.html元素上调用DIV方法。

答案 2 :(得分:0)

来自jQuery文档:

  

选择器上下文

     

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

答案 3 :(得分:0)

第二个参数是上下文。有一个例子:假设你已经选择了#div,并且你想在div中选择跨度。

你会这样做:

var spans = $('#div').find('span');

不是通过.find()查找,而是可以使用jQuery()的第二个参数:

var div = $('#div');
var spans = $('span', div);

那就是你为jQuery函数指定上下文,希望有助于理解。 :)