直接上代码
方法一:
//实现全选与反选
$("#allAndNotAll").click(function () {
if ($(this).prop("checked")) {
$("input[name=checkitem]:checkbox").each(function () {
$(this).prop("checked", true);
});
} else {
$("input[name=checkitem]:checkbox").each(function () {
$(this).prop("checked", false);
});
}
});
方法二:
$("#allAndNotAll").click(function () {
if ($("#allAndNotAll").prop('checked')) {
$("#allAndNotAll").prop("checked", true);
$("input[name=checkitem]:checkbox").prop("checked", true);
} else {
$("#allAndNotAll").prop("checked", false);
$("input[name=checkitem]:checkbox").prop("checked", false);
}
});
当有一个取消选中,则取消全选:
//当其中不勾选某一个选项的时候,则去掉全选复选框
$(":checkbox[name=checkitem]").click(function () {
$("#allAndNotAll").prop('checked',
$(":checkbox[name='checkitem']").length == $(":checkbox[name='checkitem']:checked").length);
});
问题:当将所有的prop方法改为attr的时候,checkbox全选/全不选只有第一次点击的时候有效,后面点击全部无效
解决方法就是:直接使用prop方法,这是jQuery的一个bug。