Получить последний ли на линии JQuery - PullRequest
4 голосов
/ 16 августа 2011

У нас есть простое ul

<ul>
   <li>some text</li>
   <li>some some text</li>
   <li>text more</li>
   <li>text here</li>
</ul>

ul { text-align: center; width: 100px; }
li { width: auto; display: inline; }

Таким образом, ul может иметь несколько строк.Как мне взять последние li каждой строки внутри ul?

Ответы [ 7 ]

9 голосов
/ 16 августа 2011

Если под last li в каждой строке ul вы подразумеваете последний li в каждом ul, то:

$('ul li:last-child');

Однако, если вы имеете в виду, чтоу вас есть li в пределах того же ul, записанного в нескольких строках в вашем исходном коде, и теперь вы хотите получить последнюю строку в каждой строке, тогда ответ таков: вы не можете.DOM не заботится о ваших символах новой строки в вашем коде.


Примечание: правильный способ сделать это - дать отдельный класс li.

<ul>
    <li></li><li></li><li class="last"></li>
    <li></li><li></li><li class="last"></li>
    <li></li><li></li><li class="last"></li>
</ul>

Теперь вы можете использовать CSS

li.last { color: #444 }

и jQuery

$('li.last');

надлежащим образом ...

1 голос
/ 16 августа 2011

Чтобы получить последний элемент в списке с помощью jQuery, вы можете просто использовать метод last().

Дополнительную информацию см. Здесь: http://api.jquery.com/last/

var item = $('#myList li').last()
1 голос
/ 16 августа 2011

Возвращает группу "last li в каждой строке ul"

$("ul li:last");
1 голос
/ 16 августа 2011

Используйте селектор :last - http://api.jquery.com/last-selector/

$("ul li:last");

и если вы пытаетесь найти последний li для нескольких ul, попробуйте это:

var $lasts = $("ul").map(function(){
    return $(this).find("li:last");
});

рабочий пример:

http://jsfiddle.net/hunter/SBsqS/

1 голос
/ 16 августа 2011

см. jquery .last ()

$('ul li').last().css('background-color', 'red');
0 голосов
/ 16 августа 2011

Попробуйте использовать :last селектор: http://api.jquery.com/last-selector

0 голосов
/ 16 августа 2011
var theList = document.getElementById('id_of_my_ul');
var theLastItem = theList.childNodes[theList.childNodes.length - 1];

Не знаю, как бы вы это делали в JQuery, но это не может быть таким непохожим

...