Скажем, у меня есть следующее:
<ul>
<li>First item</li>
<li>Second item</li>
<li>Third item</li>
</ul>
Как выбрать все дочерние элементы после первого с помощью jQuery? Итак, я могу добиться чего-то вроде:
<ul>
<li>First item</li>
<li class="something">Second item</li>
<li class="something">Third item</li>
</ul>
javascript
jquery
Крис Канал
источник
источник
Основываясь на моем совершенно ненаучном анализе этих четырех методов, похоже, что между ними нет большой разницы в скорости. Я запускал каждый на странице, содержащей серию неупорядоченных списков разной длины, и рассчитывал их по времени с помощью профилировщика Firebug.
$("li").slice(1).addClass("something");
Среднее время: 5,322 мс
$("li:gt(0)").addClass("something");
Среднее время: 5.590 мс
$("li:not(:first-child)").addClass("something");
Среднее время: 6.084 мс
$("ul li+li").addClass("something");
Среднее время: 7,831 мс
источник
http://docs.jquery.com/Traversing/slice
$("li").slice(1).addClass("something");
источник
Более элегантный запрос (выберите все элементы li, которым предшествует элемент li):
$('ul li+li')
источник
я бы использовал
$("li:gt(0)").addClass("something");
источник
Это должно работать
$('ul :not(:first-child)').addClass('something');
источник
Это то, над чем я работаю до сих пор
$('.certificateList input:checkbox:gt(0)')
источник
Используйте метод jQuery .not ()
$('li').not(':first').addClass('something');
ИЛИ ЖЕ
var firstElement = $('li').first(); $('li').not(firstElement).addClass('something');
источник