1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>全选示例</title> 6 </head> 7 <body> 8 <input type="checkbox" id="ckBox" onclick="selAllNo()" />全选/全不选 9 <br> 10 <input type="checkbox" name="hobby" onclick="check()" />篮球 11 <br> 12 <input type="checkbox" name="hobby" onclick="check()" />足球 13 <br> 14 <input type="checkbox" name="hobby" onclick="check()" />羽毛球 15 <br> 16 <input type="checkbox" name="hobby" onclick="check()" />乒乓球 17 <br> 18 <input type="button" value="全选" onclick="selAll()" /> 19 <input type="button" value="全不选" onclick="selNo()" /> 20 <input type="button" value="反选" onclick="deSel()" /> 21 <script type="text/javascript"> 22 // 获取全选/全不选复选框 23 var ckBox = document.getElementById("ckBox"); 24 // 获取到要操作的复选框 25 var hobbies = document.getElementsByName("hobby"); 26 // 如果有一个没有选,那么去掉全选/全不选复选框 27 function check() { 28 for (var i = 0; i < hobbies.length; i++) { 29 // 只要有一个未选中,就设置复选框为未选中,并跳出循环 30 if (!hobbies[i].checked) { 31 ckBox.checked = false; 32 break; 33 } else { 34 // 如果全部都为选中,设置复选框为选中 35 ckBox.checked = true; 36 } 37 } 38 } 39 // 全选 40 function selAll() { 41 for (var i = 0; i < hobbies.length; i++) { 42 hobbies[i].checked = true; 43 } 44 ckBox.checked = true; 45 } 46 // 全不选 47 function selNo() { 48 for (var i = 0; i < hobbies.length; i++) { 49 hobbies[i].checked = false; 50 } 51 ckBox.checked = false; 52 } 53 // 全选/全不选 54 function selAllNo() { 55 if (ckBox.checked) { 56 for (var i = 0; i < hobbies.length; i++) { 57 hobbies[i].checked = true; 58 } 59 } else { 60 for (var i = 0; i < hobbies.length; i++) { 61 hobbies[i].checked = false; 62 } 63 } 64 } 65 // 反选 66 function deSel() { 67 for (var i = 0; i < hobbies.length; i++) { 68 // 选中的设为未选中,未选中的设为选中 69 hobbies[i].checked = (hobbies[i].checked) ? false : true; 70 } 71 // 检查反选是否有未选中的 72 check(); 73 } 74 </script> 75 </body> 76 </html>