如何使用JQuery从具有不规则编号索引的一组输入元素中获取所选输入的正确索引? JQuery的“索引”函数总是返回一个从0开始的值,而不是我使用的索引。我的代码如下:
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 >
谢谢!
答案 0 :(得分:7)
以下是一直对我有用的。
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 >
希望这有帮助。
答案 1 :(得分:7)
所选答案在语法方面存在一些问题:
$("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);
});
答案 2 :(得分:5)
您的ID的值没有“index”属性。这只是一个字符串。
一个建议:解析id字符串以获取您的值:
$("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);
});
希望这有帮助
答案 3 :(得分:0)
var id = $(this).attr('id');
// remove everything that is not a number
id = id.replace(/[^0-9]/g, '');
alert(id);