我的导航看起来像这样
<ul class="navigation">
<li class="navlist">
Navigation1
<ul>
<li>point1</li>
<li>point2</li>
...
</ul>
</li>
<li class="navlist">
Navigation2
<ul>
<li>point1</li>
<li>point2</li>
...
</ul>
</li>
</ul>
etc (4 more navigations) ..
现在我想选择最后一个并用jquery为它添加一个类。 Normaly我不会成为一个Porblem。但是我在代码中有5次这样的导航。并且它只使用此选择器将类添加到最后一个
$('.navigation ul:last').addClass('last_border')
答案 0 :(得分:1)
虽然
:last
只匹配一个元素,但:last-child
可以匹配多个:每个父元素一个。
不是:last
。
请注意
:last
通过过滤当前的jQuery集合并匹配其中的最后一个元素来选择单个元素。
所以你想选择“每个导航类中最后一个导航列表中的最后一个ul?”然后是你的选择器:
$('.navigation .navlist:last-child ul:last-child')
答案 1 :(得分:1)
循环遍历.navigation
个元素,并选择每个元素中的最后一个ul
。
$(".navigation").each(function(i, nav) {
$(nav).find("ul:last").addClass("last_border");
});
由于.find("ul:last")
是从每个人.navigation
的上下文执行的,因此:last
仅适用于当前的.navigation
元素。
或者由于jQuery的隐式迭代,你实际上可以这样做:
$(".navigation").find("ul:last").addClass("last_border");
jQuery将迭代找到的.navigation
元素,并分别对每个元素执行.find()
。
答案 2 :(得分:0)
我在这里猜测你真正想要的东西:
$('.navigation > li.navlist > ul:last').addClass('last_border')
这有帮助吗?