1. <body>
    2. <table>
    3. <thead>
    4. <tr>
    5. <th><input type="checkbox" id="qx"> 手机</th>
    6. </tr>
    7. </thead>
    8. <tbody id="dx">
    9. <tr>
    10. <td><input type="checkbox">苹果8</td>
    11. </tr>
    12. <tr>
    13. <td><input type="checkbox">苹果9</td>
    14. </tr>
    15. <tr>
    16. <td><input type="checkbox">苹果10</td>
    17. </tr>
    18. </tbody>
    19. </table>
    20. <script>
    21. //获取事件 需要用到全选按钮和单选按钮
    22. var qx = document.getElementById('qx');
    23. var dx = document.getElementById('dx').querySelectorAll('input');
    24. //注册事件 点击全选框 ,单选框全部勾起来
    25. qx.onclick = function () {
    26. for (i = 0; i < dx.length; i++) {
    27. dx[i].checked = this.checked;
    28. }
    29. }
    30. //单选按钮
    31. //遍历所有单项按钮加上判断
    32. for (var i = 0; i < dx.length; i++) {
    33. dx[i].onclick = function () {//点击任意单选按钮后
    34. var flag = true;//flag用于全选按钮值
    35. for (i = 0; i < dx.length; i++) {//遍历所有的单选按钮判断它处于是否全部处于选择状态
    36. if (!dx[i].checked) {//如果任意一个checked值不处于全选状态
    37. flag = false;//那么将假值赋给flag
    38. break;//只要flag变假值后,就没有循环的必要了
    39. }
    40. }
    41. qx.checked = flag;/* 遍历判断结束后,将值给qx按钮,如果上
    42. 面判断有一个假值,那么全选按钮就取消全选. */
    43. }
    44. }
    45. </script>
    46. </body>