2009-08-10 3 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

Другой подход, использующий andSelf и prev:

$('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

Смежные вопросы