javascript - queryselectorall - Seleccionar todos los elementos secundarios excepto el primero
queryselectorall javascript (8)
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>
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
Debería poder usar los selectores "no" y "primer niño".
$("li:not(:first-child)").addClass("something");
Esto debería funcionar
$(''ul :not(:first-child)'').addClass(''something'');
Esto es lo que tengo trabajando hasta ahora
$(''.certificateList input:checkbox:gt(0)'')
Una consulta más elegante (seleccione todos los elementos li precedidos por un elemento li):
$(''ul li+li'')
Use el método jQuery .not ()
$(''li'').not('':first'').addClass(''something'');
O
var firstElement = $(''li'').first();
$(''li'').not(firstElement).addClass(''something'');
Yo usaría
$("li:gt(0)").addClass("something");
http://docs.jquery.com/Traversing/slice
$("li").slice(1).addClass("something");