1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="UTF-8">
    5. <title></title>
    6. </head>
    7. <body>
    8. <input type="checkbox" id="all">全选<br>
    9. <div>
    10. <input type="checkbox" class="checkes"> 手机<br>
    11. <input type="checkbox" class="checkes"> 电脑<br>
    12. <input type="checkbox" class="checkes"> 平板<br>
    13. <input type="checkbox" class="checkes"> MP4<br>
    14. </div>
    15. <script>
    16. /*
    17. * (1)全选与取消全选做法:让所有的复选框的checked属性(选中状态)跟随着全选按钮即可
    18. * (2)下面复选框架需要全部选中,上面的全选才能选中做法:给下面所有的复选框绑定点击事件
    19. * 每次点击,都要循环查看下面所有的复选框是否有没被选中的,只要有一个没被选中,声明 全选就不选中
    20. *
    21. */
    22. //全选与取消全选:
    23. var all = document.querySelector("#all");
    24. var checks=document.querySelectorAll(".checkes");
    25. //this.checked它可以得到复选框的选中状态,如果是true,就是选中状态,如果是false,就是 未选中
    26. all.onclick=function(){
    27. for(var i=0;i<checks.length;i++){
    28. checks[i].checked=this.checked;
    29. }
    30. }
    31. //下面复选框全部选中,全选框选中
    32. for(var i=0;i<checks.length;i++){
    33. checks[i].onclick=function(){
    34. //flag控制全选按钮是否选中
    35. var flag=true;
    36. //每次点击下面的复选框,都要循环检查这四个复选框有没有全部被选中
    37. for(var j=0;j<checks.length;j++){
    38. if(!checks[j].checked){
    39. flag=false;
    40. break;//退出循环,这样可以提高执行效率,因为只要有一个没被选中,剩下的就无需进行 循环检查了
    41. }
    42. }
    43. all.checked=flag;
    44. }
    45. }
    46. </script>
    47. </body>
    48. </html>