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

3

当我阅读这本书时,我发现我无法理解这个问题。

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

task-name 是 span 标签的类名。

有人能帮我解释一下吗? 这么做的确切含义是什么?

4个回答

3
第二个参数是上下文:http://api.jquery.com/jquery/#jQuery1。它类似于.find(),它接受一个jquery选择器并尝试用新的选择器来细化它。例如,如果你想选择#div1中的span.span1,你可以这样做:
$("span.span1", "#div1");

这与以下内容完全相同:
$("#div1 span.span1");

在这两者之间,性能上只有微小的差别,但在功能上没有任何区别。


0

第二个参数是上下文。这里有一个例子:假设您已经选择了#div,并且想要选择div内的spans。

您可以这样做:

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

不必使用.find()来查找,你可以使用jQuery()的第二个参数:

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

这样,你为jQuery函数指定了上下文,希望这有助于理解。:)


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>" );

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


0

来自jQuery文档:

选择器上下文

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接