2009-01-29 51 views
12

如何从一组使用JQuery的具有不规则索引的输入元素中选择输入的正确索引? JQuery的“索引”函数总是返回一个从0开始的值,而不是我使用的索引。我的代码如下:在JQuery中从输入数组获取正确的索引

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 > 

谢谢!

回答

5

您的ID的值没有“索引”属性。这只是一个字符串。

一个建议:解析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); 
}); 

希望这有助于

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

使用类似的概念是数据 - 属性。 – 2014-10-10 17:38:45

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); 
}); 
0

,如果你不喜欢这样,将会变得更短:

var id = $(this).attr('id'); 
     // remove everything that is not a number 
     id = id.replace(/[^0-9]/g, ''); 
     alert(id);