从JQuery中的输入数组中获取正确的索引

时间:2009-01-29 18:31:11

标签: javascript jquery html

如何使用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 >

谢谢!

4 个答案:

答案 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);