2009-08-10 16 views
19

JQuery ile sırasız bir listede son iki liste öğesine özel bir sınıf uygulamak istiyorum. Bunun gibi:jQuery: Son iki öğe öğesini mi almak istiyorsunuz?

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

Nasıl Yapılır? Kullanmalıyım: eq nasılsa? andSelf ve prev kullanarak peşin

Pontus

cevap

23

başka bir yaklaşım, içinde

Teşekkür:

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

Teşekkür ederiz! Bu güzel çalıştı! – ponjoh

+0

@ponjoh: Rica ederim! Yerel çözüm için – CMS

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

alternatif: items.slice (items.length - 2) .addClass ('özel') – Marc

+0

bir cevap olarak ekle: P –

+0

Çok teşekkürler, ama ben o zaman değişkeni "last_two" ile ne yapacağız? – ponjoh

3
$(function(){ 

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

}); 
42

Sen işlevini slice kullanabilirsiniz. Çok esnektir.

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

+1 –

+1

ve en kısa :) – vkostromin

+2

Bu "yerel" kabul olmaz. Genetik için – ricka