在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 ];
答案 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()})