1. 程式人生 > >js方法 checkbox 全選 全不選

js方法 checkbox 全選 全不選

專案經常會遇到一下需求,全選,單選需求。再此做一個小結,思路如下,判斷父元素checkbox的選中狀態來控制子元素checkbox的選中狀態,再根據子元素checkbox的總數量與其包含checked屬性的數量做對比,如果總長度大於包含checked的數量,則父元素checkbox的checked設為false,反之設為true。

程式碼如下:

function checkboxTurnOnOff(checkboxID,subDiv){

        $("#"+checkboxID).on("click",function(){
            if($(this).prop("checked")==true || $(this).prop("checked")=="checked"){
                $("."+subDiv).find("input[type=checkbox]").prop("checked",true);
            }else{
                $("."+subDiv).find("input[type=checkbox]").prop("checked",false);
            }
        });
        $("."+subDiv).find("input[type=checkbox]").on("change",function(){ //尋找input屬性為checkbox的元素,並繫結change事件
            var totalCheks=$("."+subDiv).find("input[type=checkbox]").length;//定義一個總選項長度為checkbox元素個數
            var checkedCheks=$("."+subDiv).find("input[type=checkbox]:checked").length;//定義選中項為checkbox屬性為checked時的長度
            if(totalCheks>checkedCheks){//當總長度大於選中長度時
                $("#"+checkboxID).prop("checked",false);//總選項 checked設為false
            }else{
                $("#"+checkboxID).prop("checked",true); //總選項checked設為true
            }
        });

    }