<body> <table> <thead> <tr> <th><input type="checkbox" id="qx"> 手机</th> </tr> </thead> <tbody id="dx"> <tr> <td><input type="checkbox">苹果8</td> </tr> <tr> <td><input type="checkbox">苹果9</td> </tr> <tr> <td><input type="checkbox">苹果10</td> </tr> </tbody> </table> <script> //获取事件 需要用到全选按钮和单选按钮 var qx = document.getElementById('qx'); var dx = document.getElementById('dx').querySelectorAll('input'); //注册事件 点击全选框 ,单选框全部勾起来 qx.onclick = function () { for (i = 0; i < dx.length; i++) { dx[i].checked = this.checked; } } //单选按钮 //遍历所有单项按钮加上判断 for (var i = 0; i < dx.length; i++) { dx[i].onclick = function () {//点击任意单选按钮后 var flag = true;//flag用于全选按钮值 for (i = 0; i < dx.length; i++) {//遍历所有的单选按钮判断它处于是否全部处于选择状态 if (!dx[i].checked) {//如果任意一个checked值不处于全选状态 flag = false;//那么将假值赋给flag break;//只要flag变假值后,就没有循环的必要了 } } qx.checked = flag;/* 遍历判断结束后,将值给qx按钮,如果上 面判断有一个假值,那么全选按钮就取消全选. */ } } </script></body>