Выберите все дочерние элементы, кроме первого


83

Скажем, у меня есть следующее:

<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>

Ответы:


138

Вы должны уметь использовать селекторы «не» и «первый ребенок».

$("li:not(:first-child)").addClass("something");

http://docs.jquery.com/Selectors/not

http://docs.jquery.com/Selectors/firstChild


Я пробовал это: $ ('. CertificateList input: checkbox: not (: first-child)'), но это не сработало ....
Крис Канал,

Будет ли это медленнее, чем метод Slice, указанный ниже?
Крис Марасти-Георг,

36

Основываясь на моем совершенно ненаучном анализе этих четырех методов, похоже, что между ними нет большой разницы в скорости. Я запускал каждый на странице, содержащей серию неупорядоченных списков разной длины, и рассчитывал их по времени с помощью профилировщика 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 мс


3
Я столкнулся с этим вопросом, потому что мне нужно было получить всех детей, кроме первого. Я делал это на всех h3, которые были в div. Я выполнил три запроса, как у вас, на моей странице, и получил: not (: first-child) как самый быстрый в 2-3 раза. Я думаю, что то, как структурирована ваша страница, также может влиять на скорость профиля. В любом случае, этот ответ научил меня использовать профилировщик Firebug, и я благодарю вас за это.
RedWolves,






0

Используйте метод jQuery .not ()

$('li').not(':first').addClass('something');

ИЛИ ЖЕ

var firstElement = $('li').first();
$('li').not(firstElement).addClass('something');
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.