2010-01-28 101 views
171

我想獲得在具有特定ID的div中選中的複選框的名稱列表。我將如何做到這一點使用jQuery?例如:使用jQuery獲取選中的複選框列表

例如,對於這個div我想得到數組[[c_n_0]; 「c_n_3」]或字符串「c_n_0; c_n_3」

<div id="checkboxes"> 
    <input id="chkbx_0" type="checkbox" name="c_n_0" checked="checked" />Option 1 
    <input id="chkbx_1" type="checkbox" name="c_n_1" />Option 2 
    <input id="chkbx_2" type="checkbox" name="c_n_2" />Option 3 
    <input id="chkbx_3" type="checkbox" name="c_n_3" checked="checked" />Option 4 
</div> 

回答

333

組合:

var selected = []; 
$('#checkboxes input:checked').each(function() { 
    selected.push($(this).attr('name')); 
}); 
+9

和另一個組合:var selected = $( '#checkboxes input:checked')。map(function(i,el){return el.name;})。get(); //添加.join(';')以獲得組合字符串 – roberkules 2011-12-02 00:08:59

+6

添加http://jsfiddle.net/dvCmR/ – roberkules 2011-12-02 00:16:09

+1

@Alex LE。我如何獲得所選複選框的計數?我只需要檢查div中是否有任何複選框被選中。 – ashishjmeshram 2012-05-09 04:05:09

38

會這樣嗎?

var selected = []; 
$('div#checkboxes input[type=checkbox]').each(function() { 
    if ($(this).is(":checked")) { 
     selected.push($(this).attr('name')); 
    } 
}); 
+8

$(this).checked does not work。使用if($(this).attr('checked'))或if($(this).is(':checked')) – 2013-01-31 09:40:41

34
$("#checkboxes").children("input:checked") 

會給你的元素本身的數組。如果你只是需要專門的名字:前兩個答案

$("#checkboxes").children("input:checked").map(function() { 
    return this.name; 
}); 
+2

我認爲應該返回this.name或返回$(this).attr '名稱'); – 2010-01-28 15:42:55

+4

$(「#checkboxes:checked」)。map(...)'會更簡潔。正如Jansen指出的,它應該是'$(this).attr(「name」)';但我會考慮一個簡單的'this.name',它應該是兼容的。 – 2010-01-28 15:44:13

+0

是的,你說得對,這個名字會更好 – Corey 2010-01-28 15:47:28

6

這對我的作品。

var selecteditems = []; 

$("#Div").find("input:checked").each(function (i, ob) { 
    selecteditems.push($(ob).val()); 
}); 
16

我需要檢查所有複選框的計數。而不是寫一個循環我做了這個

$(".myCheckBoxClass:checked").length; 

比較它與複選框的總數,看看它們是否相等。希望這將幫助別人

4

你也可以給他們所有的同名so they are an array,但給他們不同的

<div id="checkboxes"> 
    <input type="checkbox" name="c_n[]" value="c_n_0" checked="checked" />Option 1 
    <input type="checkbox" name="c_n[]" value="c_n_1" />Option 2 
    <input type="checkbox" name="c_n[]" value="c_n_2" />Option 3 
    <input type="checkbox" name="c_n[]" value="c_n_3" checked="checked" />Option 4 
</div> 

然後,您可以只得到勾選那些using map才值:

$('#checkboxes input:checked[name="c_n[]"]') 
      .map(function() { return $(this).val(); }).get() 
相關問題