全选,全不选,反选

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 
  4 <head>
  5     <meta charset="UTF-8">
  6     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7     <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8     <title>Document</title>
  9 </head>
 10 <style>
 11     table {
 12         width: 70%;
 13     }
 14 </style>
 15 
 16 <body>
 17     <table border="1">
 18         <tr>
 19             <th width='80px'><input type="checkbox" onclick="qunxuan()" name="" id="all">全选</th>
 20             <th>姓名</th>
 21             <th>性别</th>
 22             <th>年龄</th>
 23         </tr>
 24         <tr>
 25             <td><input type="checkbox" name="e" id=""></td>
 26             <td>张三</td>
 27             <td>男</td>
 28             <td>24</td>
 29         </tr>
 30         <tr>
 31             <td><input type="checkbox" name="e" id=""></td>
 32             <td>李四</td>
 33             <td>女</td>
 34             <td>34</td>
 35         </tr>
 36         <tr>
 37             <td><input type="checkbox" name="e" id=""></td>
 38             <td>王五</td>
 39             <td>男</td>
 40             <td>45</td>
 41         </tr>
 42     </table>
 43     <input type="button" value="按钮">
 44 </body>
 45 
 46 </html>
 47 <script>
 48     // 获取需要用的元素对象
 49     var allchek = document.querySelectorAll('input[name="e"]');//获取所有在tbody中的复选框
 50     var chek = document.querySelector('#all');//获取全选框
 51     var fanxuan = document.querySelector('input[type="button"]')//获取反选按钮
 52     // 全选事件
 53     function qunxuan() {
 54         // 遍历所tbody中的复选框
 55         for (var i = 0; i < allchek.length; i++) {
 56             // 获取全选框的状态
 57             var a = chek.checked;
 58             // 根据全选框的状态设置tbody中的复选框的状态
 59             if (a) {
 60                 allchek[i].checked = true;
 61             } else {
 62                 allchek[i].checked = false;
 63             }
 64         }
 65     }
 66 
 67     // 遍历tbody中的复选框并注册单击事件
 68     for (var i = 0; i < allchek.length; i++) {
 69         allchek[i].onclick = function () {
 70             // 设置一个参数用来判断是不是tbody中的复选框都选中或不选中
 71             var flag = true;
 72             // 遍历tbody中的复选框并判断其状态
 73             for (var j = 0; j < allchek.length; j++) {
 74                 var a = allchek[j].checked;
 75                 // 如果不选中则flag设为false
 76                 if (!a) {
 77                     flag = false;
 78                     break;//只判断第一个,提高效率
 79                 }
 80             }
 81             // 通过判断flag的设置全选框的状态
 82             if (flag) {
 83                 chek.checked = true;
 84             } else {
 85                 chek.checked = false;
 86             }
 87         };
 88     }
 89 
 90     // 反选事件
 91     fanxuan.onclick = function () {
 92         // 遍历所有的tbody中的复选框
 93         for (var j = 0; j < allchek.length; j++) {
 94             var a = allchek[j].checked;
 95             if (a) {
 96                 allchek[j].checked = false;
 97             } else {
 98                 allchek[j].checked = true;
 99             }
100         };
101         // 设置一个参数用来判断是不是tbody中的复选框都选中或不选中
102         var flag = true;
103         // 遍历tbody中的复选框并判断其状态
104         for (var j = 0; j < allchek.length; j++) {
105             var a = allchek[j].checked;
106             // 如果不选中则flag设为false
107             if (!a) {
108                 flag = false;
109                 break;//只判断第一个,提高效率
110             }
111         }
112         // 通过判断flag的设置全选框的状态
113         if (flag) {
114             chek.checked = true;
115         } else {
116             chek.checked = false;
117         }
118     };
119 </script>

 

上一篇:通过css样式给表格tbody加垂直滚动条


下一篇:JQeruy笔记---JQuery入门案例