js实现checkbox全选和取消,子复选框全选时全选框也自动选上

checkebox 全选 ,子复选框单个所有选择后,全选框也会被选择

<input type="checkbox" id="allcheck"  onclick="demo()" />全选
<input type="checkbox" name="choice" class="checknum"  onclick="setAll()" />1
<input type="checkbox" name="choice" class="checknum"  onclick="setAll()" />2
<input type="checkbox" name="choice" class="checknum"  onclick="setAll()" />3
<input type="checkbox" name="choice" class="checknum"  onclick="setAll()" />4


<script>

    //点击全选,子复选框被选中
    function demo(){
        var allcheck=document.getElementById("allcheck");
        var choice=document.getElementsByName("choice");
        for(var i=0;i<choice.length;i++){
            choice[i].checked=allcheck.checked;
        }
    }

    //点击子复选框,全选框 选中、取消
    function setAll(){
        if(!$(".checknum").checked){
            $("#allcheck").prop("checked",false); // 子复选框某个不选择,全选也被取消
        }
        var choicelength=$("input[type='checkbox'][class='checknum']").length;
        var choiceselect=$("input[type='checkbox'][class='checknum']:checked").length;

        if(choicelength==choiceselect){
            $("#allcheck").prop("checked",true);   // 子复选框所有部被选择,全选也被选择;1.对于HTML元素咱们本身自定义的DOM属性,在处理时,使用attr方法;2.对于HTML元素自己就带有的固有属性,在处理时,使用prop方法。
        }

    }

</script>