Jquery 多次调用attr("checked", true/false)点一次后就不生效,或不全选的 解决方法

需要复选框全选/全不选功能时,我们会选择使用jquery的attr("checked", true)全选、attr("checked", false)全不选。当多次调用attr("checked", true/false)时只有第一次有效,第二次点击并不会有全选效果,或者我们手动不选择其中一项后,点全选也不会讲未选的选择上。

先看下代码:

function quanxuan(status){
    if(status==1){
        $("input[name='xim[]']").attr("checked" , true);//全选
     }else{
         $("input[name='xim[]']").attr("checked" ,false);//全不选
     }
}

解决方法非常简单,只要将attr改成prop即可。

function quanxuan(z,status){
    if(status==1){
        $("input[name='xim[]']").prop("checked" , true);
     }else{
         $("input[name='xim[]']").prop("checked" ,false);
     }
}