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/

それは使用しています 。not and :last

于 2012-05-26T21:42:32.310 に答える