javascript - index - Obtener el índice correcto de la matriz de entrada en JQuery
slice jquery (4)
¿Cómo se obtiene el índice adecuado de una entrada seleccionada de un conjunto de elementos de entrada con índices numerados irregularmente usando JQuery? La función de "índice" de JQuery siempre devuelve un valor que comienza en 0 en lugar de los índices que utilicé. Mi código está abajo:
JQuery:
$("input[name^=myboxes]").click(function() {
var element_id = $("input[name^=myboxes]").index(this);
alert(element_id); //will alert 0, 1, or 2 instead of 3, 8, or 10
});
HTML:
<input type="checkbox" id="myboxes[3]" name="myboxes[3]" value="CHECKED" >
<input type="checkbox" id="myboxes[8]" name="myboxes[8]" value="CHECKED" >
<input type="checkbox" id="myboxes[10]" name="myboxes[10]" value="CHECKED" CHECKED >
¡Gracias!
Lo siguiente es lo que siempre me ha funcionado.
JQuery:
$("input[name^=myboxes]").click(function() {
var element_id = $(this).attr("meta:index");
alert(element_id);
});
HTML:
<input type="checkbox" id="myboxes[3]" name="myboxes[3]" meta:index="3" value="CHECKED" >
<input type="checkbox" id="myboxes[8]" name="myboxes[8]" meta:index="8" value="CHECKED" >
<input type="checkbox" id="myboxes[10]" name="myboxes[10]" meta:index="10" value="CHECKED" CHECKED >
Espero que esto ayude.
La respuesta seleccionada tiene algunos problemas con la sintaxis que debería ser:
$("input[name^=myboxes]").click(function() {
var element_id = $(this).attr(''id'');
//the initial starting point of the substring is based on "myboxes["
var ix = element_id.substring(8,element_id.length - 1);
alert(ix);
});
sería aún más corto si lo haces así:
var id = $(this).attr(''id'');
// remove everything that is not a number
id = id.replace(/[^0-9]/g, '''');
alert(id);
El valor de su ID no tiene una propiedad de "índice". Es solo una cadena.
Una sugerencia: analizar la cadena id para obtener su valor:
$("input[name^=myboxes]").click(function() {
var element_id = $(this).attr(''id'');
//the initial starting point of the substring is based on "myboxes["
var ix = element_id.substring(8,element_id.length - 1)
alert(ix);
});
Espero que esto ayude