2009-01-29 92 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);