使用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);