2012-05-26 125 views
1

我想每一個元素塌陷除了最後一個與此行jQuery代碼jQuery的最後一個元素:與LT選擇

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

沒有這一行崩潰。我曾嘗試:

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

,但沒有給我的最後一個元素。我如何選擇小於最後一個元素的每個元素? lt()是什麼?

+0

使用':last'並簡化選擇器,也許。 –

+0

':lt'採用基於零的索引,而不是選擇器。 –

+1

當然.last()應該爲此工作? http://api.jquery.com/last/ – Undefined

回答

1

試試這個:

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

或者根據您的HTML是如何組織的,您可能需要:last

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

在我的情況下,這是第二個解決方案。感謝您解釋我需要的東西。完美的作品! –

+0

沒問題,很高興幫助。 –

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(); 

否則,使用@羅裏的答案。

+0

+1用於回答我的答案。和Rory一起,因爲正如你所猜測的,我不應該在我的用例中使用lt()。 –

+0

只包括所有的基地。我會自己使用羅裏的答案。 –