仅显示每个范围中类的最后一个元素

时间:2013-07-31 19:47:48

标签: jquery

假设我有以下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

3 个答案:

答案 0 :(得分:4)

使用.foo:last作为每个li的上下文应该这样做:

$('.foo:last', 'li').show();

FIDDLE

以上只是$('li').find('.foo:last')的快捷方式,甚至更详细$('li').find('.foo').filter(':last')

答案 1 :(得分:1)

你需要这样做:

$('li .foo:last-child').show();

:last是一个特殊的jQuery选择器,只能获取集合中的最后一个。

答案 2 :(得分:0)

另类&除了使用each()

的adeneo答案之外的扩展版本
$('li').each(function() {
  $(this).find('div.foo:last').show();
});