1

我正在尝试使用这行 Jquery 代码折叠除最后一个元素之外的所有元素:

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

这条线没有任何东西崩溃。我努力了:

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

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

4

4 回答 4

1

尝试这个:

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

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

$(".message_list .message_body:not(:last)").hide();
于 2012-05-26T21:36:01.613 回答
1

: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 的答案。

于 2012-05-26T21:40:11.973 回答
0
$(".message_list .message_body:not(:last)").hide();    

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

于 2012-05-26T21:40:04.993 回答
0

这是您可以使用的示例小提琴,它可能有助于概念化解决您的问题的一种方法:http: //jsfiddle.net/T5ZVE/

它用 。不是:last

于 2012-05-26T21:42:32.310 回答