Pregunta Seleccionar todos los elementos secundarios excepto el primero


Digamos que tengo lo siguiente:

<ul>
 <li>First item</li>
 <li>Second item</li>
 <li>Third item</li>
</ul>

¿Cómo seleccionaría todos los elementos secundarios después del primero usando jQuery? Entonces puedo lograr algo como:

<ul>
 <li>First item</li>
 <li class="something">Second item</li>
 <li class="something">Third item</li>
</ul>

74
2017-10-07 13:21


origen


Respuestas:


Debería poder usar los selectores "no" y "primer niño".

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

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

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


127
2017-10-07 13:25



Basado en mi análisis totalmente no científico de los cuatro métodos aquí, parece que no hay mucha diferencia de velocidad entre ellos. Ejecuté cada uno en una página que contenía una serie de listas desordenadas de diferentes longitudes y las sincronicé con el generador de perfiles de Firebug.

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

Tiempo promedio: 5.322ms

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

Tiempo promedio: 5.590ms

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

Tiempo promedio: 6.084ms

$("ul li+li").addClass("something");

Tiempo promedio: 7.831ms


31
2017-10-09 12:26



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

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

13
2017-10-07 13:24



Una consulta más elegante (seleccione todos los elementos li precedidos por un elemento li):

$('ul li+li')


9
2017-10-07 13:45



Esto debería funcionar

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

2
2017-10-07 13:29



Yo usaría

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

2
2017-10-07 14:31



Esto es lo que tengo trabajando hasta ahora

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

1
2017-10-07 13:27



Use el método jQuery .not ()

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

O

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

0
2018-05-21 08:52