2009-08-10 66 views
19

我想用jQuery將一個特殊的類應用於無序列表中的最後兩個列表項。像這樣:jQuery:獲取最後兩個列表項?

<ul> 
<li>Lorem</li> 
<li>ipsum</li> 
<li>dolor</li> 
<li class="special">sit</li> 
<li class="special">amet</li> 
</ul> 

如何?我應該使用:eq不知何故?

在此先感謝

回答

23

另一種方法,使用andSelfprev

$('ul li:last-child').prev('li').andSelf().addClass("special"); 
+0

謝謝!這很好用! – ponjoh 2009-08-10 21:35:21

+0

@ponjoh:不客氣! – CMS 2009-08-11 18:57:44

5
var items = $('ul li') 
var last_two = items.filter('li:gt('+ items.length-3 +')') 
last_two.addClass('special'); 
+0

或者:items.slice(items.length - 2).addClass( '特殊') – Marc 2009-08-10 21:17:40

+0

添加作爲一個答案:P – 2009-08-10 21:18:51

+0

非常感謝,但我該怎麼再與變量 「last_two」 嗎? – ponjoh 2009-08-10 21:19:41

3
$(function(){ 

    $("li:gt("+($("li").length-3)+")").addClass("special"); 

}); 
42

可以使用功能slice。它非常靈活。

$('ul li').slice(-2).addClass("special"); 
+1

+1原生解決方案 – 2013-02-27 02:00:31

+1

和最短:) – vkostromin 2013-04-23 09:03:47

+2

我不會考慮這個「原生」。 – ricka 2013-11-21 00:59:41