JQuery实现全选功能(解决只能全选一次的问题)

Step-1 : JS实现
//全选、取消全选的事件  
function selectAll(){ 
    console.log(1);
    console.log($("#checkall").prop("checked"));
    if ($("#checkall").prop("checked")) { 
        console.log(2);           
        $("input[type='checkbox'][name='checkedres']").prop("checked",true);//全选
    } else { 
        console.log(3);               
        $("input[type='checkbox'][name='checkedres']").prop("checked",false);  //取消全选     
    }  
}  
//子复选框的事件  
function setSelectAll(){  
    //当没有选中某个子复选框时,SelectAll取消选中  
    if (!$("#checkedres").checked) {  
        $("#checkall").prop("checked", false);  
    }  
    var chsub = $("input[type='checkbox'][name='checkedres']").length; //获取subcheck的个数  
    var checkedsub = $("input[type='checkbox'][name='checkedres']:checked").length; //获取选中的subcheck的个数  
    if (checkedsub == chsub) {  
        $("#checkall").prop("checked", true);  
    }  
}
Step-2 : HTML实现
    //设置全选复选框
    <input id="checkall" name="checkall" type="checkbox" onclick="selectAll()"/>全选
    //设置子复选框
    <input id="checkedres" name="checkedres" type="checkbox" onclick="setSelectAll()"/>item 1
    <input id="checkedres" name="checkedres" type="checkbox" onclick="setSelectAll()"/>item 2
    <input id="checkedres" name="checkedres" type="checkbox" onclick="setSelectAll()"/>item 3
    <input id="checkedres" name="checkedres" type="checkbox" onclick="setSelectAll()"/>item 4
备注总结

因jQuery版本更迭问题,修改checked属性时不能使用attr()方法,应使用prop()方法,否则将出现全选功能只第一次有效的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容