首页 > 运营 > 帮助中心 > 正文

JS实现点餐自动选择框(案例分析)

2020-07-28 13:47:37
字体:
来源:转载
供稿:网友

效果图:

1. 目标需求(一共两个):

1.点击上方全选/全不选选择框,实现对应功能
2.点击下方选择框,如果所有选择框同时被选中,则上方全选框自动变成勾选状态,否则是非勾选状态

2.思路分析:

1.实现上面选择框全选全不选功能,添加上面的鼠标点击事件,让下方所有选择框跟上方一样就行
2.下方选择框在点击时,使用开关思想来检查是否是全部都选择的状态

3.js实现步骤:

上方全选/全不选选择框,实现步骤

1.获取元素

var chkAll=document.getElementById('checkAll'); var chkList=document.getElementsByName('check');

2.实现上方选择框全选/全不选功能

 chkAll.onclick=function ( ) {   for(var i=0;i<chkList.length;i++){    chkList[i].checked=this.checked;    } }

3.下方选择框点击

开关思想:当一个操作的结果只有两种状态,就可以使用布尔类型来表示这两种状态 isAllOk = true(全部选中)

1.提出假设 isAllOk = true
2.验证假设
3.根据验证结果来实现需求

  

 //3.1遍历下方按钮,检查下方按钮的点击事件 for(var i=0;i<chkList.length;i++){  chkList[i].onclick=function ( ) {   var isAllChecked=true;//假设全部都是选中状态   for(var j=0;j<chkList.length;j++){     if(chkList[j].checked==false){      isAllChecked=false;     }    }   //检测完毕之后,根据开关的值来设置上方选择框的状态   if(isAllChecked==true){    chkAll.checked=true;   }   else {    chkAll.checked=false;   }  }  }

最后附上完整的代码:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style>  * {   margin: 0;   padding: 0;  }  table {   border: 1px solid #c0c0c0;   margin: 100px auto;   /*margin两个值代表上下,左右*/   text-align: center;   width: 500px;   border-collapse: collapse;   /*边框合并,如果相邻,则共用一个边框*/  }  th{   font:bold 15px "微软雅黑";   background-color: #09c;   color: #fff;   height: 24px;  }  td {   border: 1px solid #d0d0d0;   color: #404060;   padding: 15px;  } </style></head><body><table> <!--caption是表格的标题--> <caption>点餐系统</caption> <thead> <tr>  <th>   <input type="checkbox" >全选/全不选  </th>  <th>菜名</th>  <th>商家</th>  <th>价格</th> </tr> </thead> <tbody> <tr>  <td>   <input type="checkbox" name="check"/>  </td>  <td>红烧肉</td>  <td>隆江猪脚饭</td>  <td>¥200</td> </tr> <tr>  <td>   <input type="checkbox" name="check"/>  </td>  <td>香酥排骨</td>  <td>隆江猪脚饭</td>  <td>¥998</td> </tr> <tr>  <td><input type="checkbox" name="check"/></td>  <td>北京烤鸭</td>  <td>隆江猪脚饭</td>  <td>¥88</td> </tr> </tbody> <tfoot> <tr> </tr> </tfoot></table><script> //1.获取界面对应元素 var chkAll=document.getElementById('checkAll'); var chkList=document.getElementsByName('check'); //2.实现上方选择框全选/全不选功能 chkAll.onclick=function ( ) {   for(var i=0;i<chkList.length;i++){    chkList[i].checked=this.checked;    } } //3.实现下方选择功能 //3.1遍历下方按钮,检查下方按钮的点击事件 for(var i=0;i<chkList.length;i++){  chkList[i].onclick=function ( ) {   var isAllChecked=true;//假设全部都是选中状态   for(var j=0;j<chkList.length;j++){     if(chkList[j].checked==false){      isAllChecked=false;     }    }   //检测完毕之后,根据开关的值来设置上方选择框的状态,下面也可以简写为 checkAll.checked = isAllChecked;   if(isAllChecked==true){    chkAll.checked=true;   }   else {    chkAll.checked=false;   }  }  }</script></body></html>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表