2009-08-10 13 views
19

jQueryで順序付けられていないリストの最後の2つのリスト項目に特別なクラスを適用したいとします。このように:jQuery:最後の2つのリスト項目を取得していますか?

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

どのようにですか?どうすればよいでしょうか?事前に

おかげ

ポントス

答えて

23

別のアプローチ、andSelfprevを使用して:

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

ありがとうございます!それは美しく働いた! – ponjoh

+0

@ponjoh:ようこそ! – CMS

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

+0

が答えとして追加:P –

+0

どうもありがとう、私は、変数 "last_two" で何をしますか? – ponjoh

3
$(function(){ 

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

}); 
42

をあなたが機能sliceを使用することができます。それは非常に柔軟です。

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

+1ネイティブソリューション –

+1

と最短: – vkostromin

+2

私はこれを "ネイティブ"とは考えません。 – ricka

関連する問題