2012-03-19 19 views
1

我有一個表,其中,I有複選框等:如何在jquery中選擇多維輸入的列?

<input id="id_answer[text_singleline][0][1]" type="checkbox" value="1" name="answer[text_singleline][0][1]"> 

其中第二索引[0]是行,第三索引[1]是列。我需要選擇列中的所有複選框,如下所示:

$('#id_answer\\[text_singleline\\]\\[*\\]\\[0\\]') 

jQuery有可能嗎?

回答

2

如果弗雷德裏克的解決方案不符合您的使用情況下工作,你總是可以使用過濾器的方法:

$('input:[id*=id_answer\\[text_singleline\\]]').filter(function() { 
    return /\[.+?\]\[0\]/.test(this.id); 
}).each(function() { 
    alert(this.id); 
});​ 

測試在這裏:http://jsfiddle.net/SmU4z/

關於過濾方法的更多信息可以在這裏找到:http://api.jquery.com/filter/

+0

謝謝,我標記您的解決方案,而不是Frederics的(在這種情況下工作過),但是這是比較普遍的做法。 – Bruce 2012-03-21 22:00:57

1

當然,但它可能會更簡單的使用DOM導航和:nth-child()選擇器,而不是您的情況下的id選擇器。

喜歡的東西:

var checkboxesInFirstColumn = $("#yourTable td:nth-child(1) input:checkbox"); 
0
$('input[id="id_answer[text_singleline][0][1]"]')​ 

使用ID的屬性選擇器而不是使用#

試試這個選擇開始"id_answer[text_singleline][0]"所有ID:

$('input[id^="id_answer[text_singleline][0]"]')​ 
+0

是的,但提問者想匹配整列,而不是整行,所以單個id選擇器不會執行這個技巧(因此問題中正確轉義的'\\ [* \\]'選擇器片段)。 – 2012-03-19 21:44:44

+0

@FrédéricHamidi:是的,你是對的,我沒有意識到這一點。 – 2012-03-20 13:34:59