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


Posted in Javascript onDecember 10, 2019

效果图:

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

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" id="checkAll">全选/全不选
  </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>

总结

以上所述是小编给大家介绍的JS实现点餐自动选择框,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JavaScript读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
非阻塞动态加载javascript广告实现代码
Nov 17 Javascript
jquery聚焦文本框与扩展文本框聚焦方法
Oct 12 Javascript
js之事件冒泡和事件捕获详细介绍
Oct 28 Javascript
js显示动态时间的方法详解
Aug 20 Javascript
Bootstrap 轮播(Carousel)插件
Dec 26 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
浅谈Node Inspector 代理实现
Oct 19 Javascript
JavaScript之创意时钟项目(实例讲解)
Oct 23 Javascript
vue组件发布到npm简单步骤
Nov 30 Javascript
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
阿望教你用vue写扫雷小游戏
Jan 20 Javascript
原生js实现随机点餐效果
Dec 10 #Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
Dec 10 #Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 #Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 #Javascript
vue实现随机验证码功能(完整代码)
Dec 10 #Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 #Javascript
基于vue实现图片验证码倒计时60s功能
Dec 10 #Javascript
You might like
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
php下pdo的mysql事务处理用法实例
2014/12/27 PHP
php 中奖概率算法实现代码
2017/01/25 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
用JS实现的一个include函数
2007/07/21 Javascript
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
js获取url参数代码实例分享(JS操作URL)
2013/12/13 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
javaScript实现滚动新闻的方法
2015/07/30 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
jQuery实现拖动效果的实例代码
2017/06/25 jQuery
实现图片首尾平滑轮播(JS原生方法—节流)
2017/10/17 Javascript
js最简单的双向绑定实例讲解
2018/01/02 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
javascript实现点击星星小游戏
2019/12/24 Javascript
Python创建模块及模块导入的方法
2015/05/27 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
详解python的ORM中Pony用法
2018/02/09 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
详解python破解zip文件密码的方法
2020/01/13 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
纽约手袋品牌:KARA
2018/03/18 全球购物
Fanatics法国官网:美国体育电商
2019/08/27 全球购物
蛋糕店创业计划书
2014/05/06 职场文书
上诉答辩状范文
2015/05/22 职场文书
2015年度招聘工作总结
2015/05/28 职场文书
负责培养人意见
2015/06/05 职场文书
导游词之桂林山水
2019/09/20 职场文书
HTML中的表格元素介绍
2022/02/28 HTML / CSS
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫