En jQuery, ¿cómo uso un selector para acceder a todos menos al primero de un elemento? Entonces, en el siguiente código, solo se accedería al segundo y tercer elemento. Sé que puedo acceder a ellos manualmente, pero podría haber cualquier cantidad de elementos, por lo que no es posible. Gracias.
<div class='test'></div>
<div class='test'></div>
<div class='test'></div>
jquery
jquery-selectors
prueba de uso
fuente
fuente
Respuestas:
o:
o:
o:
o: (según el comentario de @Jordan Lev):
y así.
Ver:
fuente
$("li").not(":eq(0)")
parece bueno.$("div.test:first").siblings().hide()
. Me pareció útil comenzar con el primer elemento, luego ocultar a todos sus hermanos, incluso si no se encuentran con un selector común.$("div.test").slice(1).hide();
parece más indulgente en caso de selección vacía ...Debido a la forma en que los selectores jQuery se evalúan de derecha a izquierda ,
li:not(:first)
esa evaluación ralentiza bastante la lectura .Una solución igualmente rápida y fácil de leer es usar la versión de función
.not(":first")
:p.ej
JSPerf: http://jsperf.com/fastest-way-to-select-all-expect-the-first-one/6
Esto es solo unos pocos puntos porcentuales más lento que
slice(1)
, pero es muy legible como "Quiero todos excepto el primero".fuente
Mi respuesta se centra en un caso extendido derivado del expuesto en la parte superior.
Supongamos que tiene un grupo de elementos del que desea ocultar los elementos secundarios, excepto primero. Como ejemplo:
Queremos ocultar todos los
.child
elementos en cada grupo. Entonces esto no ayudará porque ocultará todos los.child
elementos exceptovisible#1
:La solución (en este caso extendido) será:
fuente
fuente