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

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

<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>
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
84
0
66 814
8
Перейти к ответу Данный вопрос помечен как решенный

Ответы 8

http://docs.jquery.com/Traversing/slice

$("li").slice(1).addClass("something");

Это хороший ответ, но я чувствую, что в качестве ответа я выбрал более явное использование. Любой новичок в проекте будет быстрее понимать, что делается в селекторе.

Chris Canal 12.10.2008 05:24
Ответ принят как подходящий

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

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

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

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

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

Chris Canal 07.10.2008 17:27

Будет ли это медленнее, чем метод Slice, указанный ниже?

Chris Marasti-Georg 07.10.2008 17:59

Это то, над чем я работаю до сих пор

$('.certificateList input:checkbox:gt(0)')

Это должно работать

$('ul :not(:first-child)').addClass('something');

Более элегантный запрос (выберите все элементы li, которым предшествует элемент li):

$('ul li+li')

$ ("li + li"), скорее всего, будет работать быстрее, чем $ ("li: not (: first-child)")

Sergey Ilinsky 07.10.2008 17:46

я бы использовал

$("li:gt(0)").addClass("something");

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

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

RedWolves 16.06.2009 18:59

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

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

ИЛИ ЖЕ

var firstElement = $('li').first();
$('li').not(firstElement).addClass('something');

Другие вопросы по теме