<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <input type="checkbox" id="all">全选<br> <div> <input type="checkbox" class="checkes"> 手机<br> <input type="checkbox" class="checkes"> 电脑<br> <input type="checkbox" class="checkes"> 平板<br> <input type="checkbox" class="checkes"> MP4<br> </div> <script> /* * (1)全选与取消全选做法:让所有的复选框的checked属性(选中状态)跟随着全选按钮即可 * (2)下面复选框架需要全部选中,上面的全选才能选中做法:给下面所有的复选框绑定点击事件 * 每次点击,都要循环查看下面所有的复选框是否有没被选中的,只要有一个没被选中,声明 全选就不选中 * */ //全选与取消全选: var all = document.querySelector("#all"); var checks=document.querySelectorAll(".checkes"); //this.checked它可以得到复选框的选中状态,如果是true,就是选中状态,如果是false,就是 未选中 all.onclick=function(){ for(var i=0;i<checks.length;i++){ checks[i].checked=this.checked; } } //下面复选框全部选中,全选框选中 for(var i=0;i<checks.length;i++){ checks[i].onclick=function(){ //flag控制全选按钮是否选中 var flag=true; //每次点击下面的复选框,都要循环检查这四个复选框有没有全部被选中 for(var j=0;j<checks.length;j++){ if(!checks[j].checked){ flag=false; break;//退出循环,这样可以提高执行效率,因为只要有一个没被选中,剩下的就无需进行 循环检查了 } } all.checked=flag; } } </script> </body></html>