所有选中复选框的jQuery数组(按类)

时间:2010-01-20 05:05:32

标签: javascript jquery html

  

可能重复:
  Select values of checkbox group with jQuery

在HTML中,我有一组按类组合在一起的复选框。我想在jQuery中获取一个数组,其中包含为该类选择/检查的所有复选框(因此忽略页面上的其他复选框)。

所以像这样的HTML代码:

<input type="checkbox" class="group1" value="18" checked="checked" />
<input type="checkbox" class="group1" value="20" />
<input type="checkbox" class="group1" value="15" />
<input type="checkbox" class="group2" value="14" />
<input type="checkbox" class="group1" value="55" checked="checked" />
<input type="checkbox" class="group1" value="10" checked="checked" />
<input type="checkbox" class="group2" value="77" checked="checked" />
<input type="checkbox" class="group1" value="11" />

将选中/选中group1复选框的值返回到如下数组:

var values = [ 18, 55, 10 ];

3 个答案:

答案 0 :(得分:202)

您可以使用:checkbox:checked伪选择器以及.class选择器,这样您就可以确保获得正确的元素,只检查了类的复选框你指定。

然后,您可以轻松使用Traversing/map方法获取值数组:

var values = $('input:checkbox:checked.group1').map(function () {
  return this.value;
}).get(); // ["18", "55", "10"]

答案 1 :(得分:31)

var matches = [];
$(".className:checked").each(function() {
    matches.push(this.value);
});

答案 2 :(得分:5)

您还可以将underscore.js添加到项目中,并且可以在一行中执行此操作:

_.map($("input[name='category_ids[]']:checked"), function(el){return $(el).val()})