使用jquery获取所有选中的checkbox与某个类的名称

我知道我可以使用这个在页面上的所有选中的checkbox:

$('input[type=checkbox]').each(function () { var sThisVal = (this.checked ? $(this).val() : ""); }); 

但是我现在在一个页面上使用了这个,它有一些我不想包含的checkbox。 我怎样才能改变上面的代码,只看看checkbox上有一个特定的类?

$('.theClass:checkbox:checked')会给你所有选中的类checkboxtheClass

 $('input:checkbox.class').each(function () { var sThisVal = (this.checked ? $(this).val() : ""); }); 

一个例子来演示。

:checkbox:checkbox的select器(事实上,你可以省略select器的input部分,尽pipe我发现了一些小的情况,在早期版本的库中会出现奇怪的结果,我相信它们在稍后修复版本)。 .class是包含class元素类属性的select器。

强制.map示例:

 var checkedVals = $('.theClass:checkbox:checked').map(function() { return this.value; }).get(); alert(checkedVals.join(",")); 
 $('input.yourClass:checkbox:checked').each(function () { var sThisVal = $(this).val(); }); 

这将获得类名“yourClass”的所有checkbox。 我喜欢这个例子,因为它使用jQueryselect器而不是进行条件检查。 我个人也会使用数组来存储值,然后根据需要使用它们,如:

 var arr = []; $('input.yourClass:checkbox:checked').each(function () { arr.push($(this).val()); }); 

如果您需要将所有选中的checkbox的值作为数组获取:

 var values = (function() { var a = []; $(".checkboxes:checked").each(function() { a.push(this.value); }); return a; })() 
  $('input.theclass[type=checkbox]').each(function () { var sThisVal = (this.checked ? $(this).val() : ""); }); 
  $('input.myclass[type=checkbox]').each(function () { var sThisVal = (this.checked ? $(this).val() : ""); }); 

请参阅jQuery类select器 。

我不确定这是否对您的特定情况有帮助,而且我不确定您的情况是否只包含所有checkbox都是单个表单或表格的一部分,但您可以随时选中所有checkbox在一个特定的元素内。 例如:

 <ul id="selective"> <li><input type="checkbox" value="..." /></li> <li><input type="checkbox" value="..." /></li> <li><input type="checkbox" value="..." /></li> <li><input type="checkbox" value="..." /></li> </ul> 

然后,使用下面的jQuery,它只能通过该UL中的checkboxid =“selective”:

 $('#selective input:checkbox').each(function () { var sThisVal = (this.checked ? $(this).val() : ""); }); 

我知道这个问题已经有很多很好的答案了,但是我在浏览时发现了这个问题,而且我发现它很容易使用。 以为我会分享给其他人看。

HTML:

 <fieldset> <!-- these will be affected by check all --> <div><input type="checkbox" class="checkall"> Check all</div> <div><input type="checkbox"> Checkbox</div> <div><input type="checkbox"> Checkbox</div> <div><input type="checkbox"> Checkbox</div> </fieldset> <fieldset> <!-- these won't be affected by check all; different field set --> <div><input type="checkbox"> Checkbox</div> <div><input type="checkbox"> Checkbox</div> <div><input type="checkbox"> Checkbox</div> </fieldset> 

jQuery的:

 $(function () { $('.checkall').on('click', function () { $(this).closest('fieldset').find(':checkbox').prop('checked', this.checked); }); }); 

参考: 使用jQuery最简单的“全部检查”

简单的方法来获取所有的值到一个数组中

  var valores = (function () { var valor = []; $('input.className[type=checkbox]').each(function () { if (this.checked) valor.push($(this).val()); }); return valor; })(); console.log(valores);