Jquery 最后一个元素与 LT 选择器



我试图用这行Jquery代码折叠除最后一个元素之外的每个元素:

$(".message_list .message_body:lt(:last-child)").hide();

这条线不会崩溃。我试过:

':last child'
:last-child
last()
:last
':last'

但没有什么能给我最后一个元素。如何选择每个元素小于最后一个元素?lt() 中有什么?

试试这个:

$(".message_list .message_body:not(:last-child)").hide();

或者,根据您的 HTML 结构,您可能需要:last .

$(".message_list .message_body:not(:last)").hide();

:lt将从零开始的索引作为参数,而不是选择器。如果必须使用 :lt

var items = $('.message_list .message_body');
var lastItem = $('.message_list .message_body:last');
var index = items.index(lastItem);
$(".message_list .message_body:lt(" + index + ")").hide();

否则,请使用@Rory的答案。

$(".message_list .message_body:not(:last)").hide();    

工作样品 : http://jsfiddle.net/WnCeH/2/

下面是一个示例小提琴,您可以从中获取,它可能有助于概念化解决问题的一种方法:http://jsfiddle.net/T5ZVE/

它使用 .not 和 :last。

最新更新