全選反選 布爾屬性,只要name即可,...
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>全選反選</title> </head> <body> <input type="button" value="全選" id="all"> <input type="button" value="反選" id="reverse"> <input type="checkbox" id="flagCheck"> <ul id="checkboxList"> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> <li><input type="checkbox"></li> </ul> <p> 布爾屬性,只要name即可,值可為空 checked,selected,readonly,disabled.... </p> <script type="text/javascript"> //1.找節點 var allBtn = document.querySelectorAll("#all")[0]; var reverseBtn = document.querySelector("#reverse"); var flagCheck = document.getElementById("flagCheck"); var checkList = document.querySelectorAll("#checkboxList input"); function checkAll() { for(var j = 0; j < checkList.length; j++) { if(!checkList[j].checked) { break; } } if(j == checkList.length) { // alert("全部為真") flagCheck.checked = true; }else { // alert("至少一個不為真"); flagCheck.checked = false; } } //2.加事件 //全選 allBtn.onclick = function() { if(flagCheck.checked) { flagCheck.checked = false; for(var i = 0; i < checkList.length; i++) { checkList[i].checked = false; } }else { flagCheck.checked = true; for(var i = 0; i < checkList.length; i++) { checkList[i].checked = true; } } } //反選 reverseBtn.onclick = function() { for(var i = 0; i < checkList.length; i++) { if(checkList[i].checked) { checkList[i].checked = false; }else { checkList[i].checked = true; } } //執行檢查所有checkList是否被選上了 checkAll(); } for(var i = 0; i < checkList.length; i++) { checkList[i].onclick = checkAll; } </script> </body> </html>