jquery的attr和removeAttr实现checkbox全选和取消全选问题
问题说明:
一个全选和取消全选的功能,界面效果图如下
点击全选checkbox则所有checkbox被选中或者取消选中
用到Jquery的attr(“checked”,true)和removeAttr(“checked”)方法
这个时候出现了问题,在第一次选中和取消时成功
第三次点击时 则不能实现全选或取消全选
F12调试查看html代码
选中全选按钮后 其它checkbox的checked属性是checked,但是显示还是未选中
解决方法
将attr属性设置方法换成prop特性设置方法
原js代码
$("#th-checkbox").bind("click",function(){
if($("#th-checkbox").is(':checked')){
$("[name='checkbox']").attr(checked",true);
}
if(!$("#th-checkbox").is(':checked')){
$("[name='checkbox']").removeAttr("checked");
}
});
修改后js
$("#th-checkbox").bind("click",function(){
if($("#th-checkbox").is(':checked')){
$("[name='checkbox']").prop("checked",true);
}
if(!$("#th-checkbox").is(':checked')){
$("[name='checkbox']").removeAttr("checked");
}
});
最终效果图