在以下jQuery中,.each()
方法有两个参数:'ul li a'
和menu
。这两个论点意味着什么?
var menu = $('.menu');
$('ul li a', menu).each(function() {
$(this).append('<span />');
});
HTML:
<div class="menu">
<ul>
<li><a href="#">Edit Profile</a></li>
<li><a href="#">Account Settings</a></li>
<li><a href="#">Appear Offline</a></li>
<li><a href="#">Logout</a></li>
</ul>
</div>
答案 0 :(得分:7)
jQuery函数的第二个参数是上下文。这告诉jQuery 仅搜索该上下文中的元素
所以对你的例子来说:
$('ul li a', menu).each(function() {
$(this).append('<span />');
});
这只会搜索位于菜单内的ul
,中的li内的锚点。
这可能是一个非常有用的优化,因为它可以显着减少jQuery必须搜索的空间量。
修改强>
为了使这一点更清晰(正如jfriend00指出的那样),您的特定示例$('ul li a', menu)
等同于$('.menu ul li a')
上下文参数在docs
中进行了解释答案 1 :(得分:1)
你好兄弟Assalamu Alaikkum,
解释如下,
第一个参数是'ul li a'这意味着它会在列表项标记中搜索锚标记,而列表项标记 无序列表标记。第一个参数是子上下文。
第二个参数菜单,这是主要的上下文。那就是jquery搜索类名的元素作为“menu”。
最后,jquery在主要上下文中搜索子上下文。因此,jquery首先搜索主要上下文“menu”,然后搜索主上下文中的子上下文。关键字“each”表示要在主要元素中搜索的所有子元素。
希望这会对你有所帮助。