选中/取消选中所有复选框
我正在尝试使用一个复选框来检查/取消选中所有其他复选框。
我正在使用此代码:
$("#checkall").toggle( function () { $(".kselItems").attr('checked', 'checked'); }, function () { $(".kselItems").removeAttr("checked"); });
这工作正常,但由于某种原因,带有id checkall
的复选框(应该使每件事都工作的复选框)永远不会保持检查状态。
怎么解决这个问题?
把事情简单化。 试试这个
$("#checkall").click(function() { $(".kselItems").attr('checked', this.checked); });
演示: http : //jsfiddle.net/naveen/azkPR/
尝试过滤掉选择器中的复选框。
$("#checkall").toggle( function () { $(".kselItems:not(#checkall)").attr('checked', 'checked'); }, function () { $(".kselItems:not(#checkall)").removeAttr("checked"); });
编辑:我写的时候,xeno06也回答:)
当你点击“checkall”时,它1)将值设置为选中,然后2)调用切换function,它将找到“checkall”,并将其返回。
最好的方法是不将“.kselItems”类放到“checkAll”中,或者如果“checkall”在“.ksleItems”中使用
$(".kselItems not(#checkall)").(...)
要么
$(".kselItems").not("#checkall").(...)
为清楚起见,我会使用naveen解决方案
$("#checkall").click(function() { $(".kselItems :checkbox").not("#checkall").attr('checked', this.checked); });
你可以试试这个
$("#checkall").click(function() { $(".kselItems").prop('checked', this.checked); });