假设我有以下HTML布局:
ul
li
div.foo
div.foo
div.foo
div.bar
li
div.foo
div.foo
div.foo
div.foo
div.foo
li
div.foo
div.foo
CSS看起来像这样:
.foo {display: none;}
我希望每个li
中的最后一个元素为display: block;
。
目前,我有:
$('li .foo:last').show();
但这只是显示最后div.foo
而不是每个div.foo
元素中的最后一个li
。
答案 0 :(得分:4)
使用.foo:last
作为每个li
的上下文应该这样做:
$('.foo:last', 'li').show();
以上只是$('li').find('.foo:last')
的快捷方式,甚至更详细$('li').find('.foo').filter(':last')
答案 1 :(得分:1)
你需要这样做:
$('li .foo:last-child').show();
:last
是一个特殊的jQuery选择器,只能获取集合中的最后一个。
答案 2 :(得分:0)
另类&除了使用each()
$('li').each(function() {
$(this).find('div.foo:last').show();
});