varios una todos selectores seleccionar referencia primer por obtener nombre mostrar los haciendo filtrado elementos elemento ejemplos con clase buscar javascript jquery

javascript - una - seleccionar varios elementos jquery



Cómo seleccionar un rango de elementos en jQuery (3)

<div id="myDiv"> <a>...</a> <a>...</a> <a>...</a> <a>...</a> <a>...</a> <a>...</a> </div>

Si quisiera seleccionar las etiquetas 2ª, 3ª y 4ª a en el ejemplo anterior, ¿cómo haría eso? Lo único que puedo pensar es:

$("#myDiv a:eq(1), #myDiv a:eq(2), #myDiv a:eq(3)")

Pero eso no parece ser muy eficiente o bonito. Supongo que también puedes seleccionar TODAS las a y luego ejecutar .each sobre ellas, pero eso podría ser muy ineficiente si hubiera muchas más a .


Debería poder hacer esto extrayendo una porción de la matriz de esta manera. Es la linea

$("div[id=''myDiv''] > a").slice(1,4).css("background","yellow");

que le interese. Afectará los elementos 2º, 3º y 4º.

<html> <head> <script type="text/javascript" src="jquery-1.2.6.pack.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("a").click(function(event){ $("div[id=''myDiv''] > a").slice(1,4).css("background","yellow"); event.preventDefault(); }); }); </script> </head> <body> <div id="myDiv"> <a>1</a> <a>2</a> <a>3</a> <a>4</a> <a>5</a> <a>6</a> </div> <hr> <a href="" >Click here</a> <hr> </body> </html>


La función jQuery slice() que toma los índices del primero y el último elemento necesario selecciona un subconjunto de los elementos coincidentes. Tenga en cuenta lo que no incluye el último elemento en sí.

En su caso particular, debe usar

$("#myDiv a").slice(1, 4)


Usar la función slice() hace exactamente lo que necesito.