Pregunta

Esta es probablemente una pregunta jQuery muy simple, pero no pude responderla después de 10 minutos en la documentación, así que...

Tengo una lista de casillas de verificación y puedo obtenerlas con el selector. 'input[type=checkbox]'.Quiero que el usuario pueda hacer clic con la tecla Mayús y seleccionar una variedad de casillas de verificación.Para lograr esto, necesito obtener el índice de una casilla de verificación en la lista, para poder pasar ese índice a .slice(start, end).¿Cómo obtengo el índice cuando el usuario hace clic en un cuadro?

¿Fue útil?

Solución

El siguiente selector también debería funcionar en jQuery: input:checkbox.

Luego puedes encadenar el :gt(index) y :lt(index) filtros juntos, por lo que si desea las casillas de verificación 5 a 7, usaría input:checkbox:gt(4):lt(2).

Para obtener el índice de la casilla de verificación actualmente seleccionada, simplemente use $("input:checkbox").index($(this)).

Otros consejos

Esta es una solución rápida, pero le daría a cada casilla de verificación una identificación única, tal vez con una sugerencia de índice, como esta:

<input id="checkbox-0" type="checkbox" />
<input id="checkbox-1" type="checkbox" />
<input id="checkbox-2" type="checkbox" />
<input id="checkbox-3" type="checkbox" />
<input id="checkbox-4" type="checkbox" />

Luego podrá obtener fácilmente el índice:

$(document).ready(function() {
  $("input:checkbox").click(function() {
    index = /checkbox-(\d+)/.exec(this.id)[1];
    alert(index);
  });
});

Gracias por la respuesta, samjudson.

Después de experimentar más, descubrí que incluso puedes usar solo $(':checkbox') para seleccionarlos.Es interesante que puedes usar el .slice() función para obtener el rango, pero también tienes la opción de hacerlo en el selector con :gt y :lt.Encuentro la sintaxis de .slice() Sin embargo, es más limpio que usar los filtros selectores.

Debo decir que no me gusta tanto la solución de Ryan Duffield porque requiere cambios en el marcado e implica repetir código.

@Gorgapor:Supongo que a veces necesito tomar las preguntas un poco menos literalmente.:-) Supuse que estaba obligado a requerir algún tipo de índice.Creo que descubrirás que a medida que uses jQuery más, normalmente no necesitarás hacer ese tipo de cosas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top