js方法 checkbox 全選 全不選
阿新 • • 發佈:2019-01-29
專案經常會遇到一下需求,全選,單選需求。再此做一個小結,思路如下,判斷父元素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
}
});
}