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 相关文章推荐
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
Apr 30 Javascript
在JavaScript的AngularJS库中进行单元测试的方法
Jun 23 Javascript
HTML5 Shiv完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
Nov 25 Javascript
Javascript中神奇的this
Jan 20 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
多种js图片预加载实现方式分享
Feb 19 Javascript
JavaScript常用本地对象小结
Mar 28 Javascript
利用vue写todolist单页应用
Dec 15 Javascript
基于canvas的二维码邀请函生成插件
Feb 14 Javascript
JS操作input标签属性checkbox全选的实现代码
Mar 02 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
webpack构建换肤功能的思路详解
Nov 27 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php下MYSQL limit的优化
2008/01/10 PHP
php array_flip() 删除数组重复元素
2009/01/14 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
PHP判断表单复选框选中状态完整例子
2014/06/24 PHP
页面利用渐进式JPEG来提升用户体验度
2014/12/01 PHP
php实现的一个简单json rpc框架实例
2015/03/30 PHP
php实现的表单验证类完整示例
2019/08/13 PHP
用JavaScript仿PS里的羽化效果代码
2011/12/20 Javascript
jQuery Tools tooltip使用说明
2012/07/14 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
JS验证IP,子网掩码,网关和MAC的方法
2015/07/02 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
js实现方块上下左右移动效果
2017/08/17 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
NodeJS父进程与子进程资源共享原理与实现方法
2018/03/16 NodeJs
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
js原生map实现的方法总结
2020/01/19 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
pyspark操作MongoDB的方法步骤
2019/01/04 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
英国No.1体育用品零售商:SportsDirect.com
2019/10/16 全球购物
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
实习生体会的自我评价范文
2013/11/28 职场文书
民间借贷纠纷案件代理词
2015/05/26 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
Python内置类型集合set和frozenset的使用详解
2022/04/26 Python