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

可能重复:
用jQueryselectcheckbox组的值

在HTML中,我有一组checkbox按类组合在一起。 我想在jQuery中获得一个数组,其中包含所有为该类select/检查的checkbox(因此,页面上的其他checkbox将被忽略)。

所以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" /> 

将检查/选中的group1checkbox的值返回到这样一个数组:

 var values = [ 18, 55, 10 ]; 

您可以使用:checkbox:checked伪select器和.classselect器,您将确保获得正确的元素,只勾选指定类的checkbox。

然后你可以很容易地使用Traversing / map方法获取一个数组值:

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

您还可以将underscore.js添加到您的项目中,并可以在一行中完成:

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