jquery对checkbox的一些操作,比如选中,全选,反选,全不选等,通常我们会用到attr来改变checkbox的checked属性,然而通过实际测试,会出现各种小问题,例如第一次成功,第二次就不成功,调试也调不出来,说白了就是第二次的是attr方法未起到效果。经过查阅文档资料,最终确定使用prop 方法能彻底解决此问题,代码如下:
function countCheckbox() {//统计选中checkbox的数量
var mainPageCheckbox = $("input[name=main_page_checkbox]");
var count = 0;
mainPageCheckbox.each(function() {
if ($(this).is(':checked')) {
count++;
}
});
$("#pageCheckCount").html(count);
}
function pageSelectAll() {//全选
var mainPageCheckBox = $("input[name=main_page_checkbox]");
mainPageCheckBox.each(function(){
$(this).prop("checked", true);
});
countCheckbox();
}
function pageNoSelectAll() {//不全选
var mainPageCheckBox = $("input[name=main_page_checkbox]");
mainPageCheckBox.each(function(){
$(this).prop("checked", false);
});
countCheckbox();
}
function pageUnselected() {//反选
var mainPageCheckBox = $("input[name=main_page_checkbox]");
mainPageCheckBox.each(function(){
$(this).prop("checked", !$(this).is(':checked'));//注意这里用的是 prop 而不是 attr
});
countCheckbox();
}