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.