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 相关文章推荐
JS实现模仿微博发布效果实例代码
Dec 16 Javascript
JS使用eval()动态创建变量的方法
Jun 03 Javascript
JavaScript 身份证号有效验证详解及实例代码
Oct 20 Javascript
老生常谈原生JS执行环境与作用域
Nov 22 Javascript
微信小程序 wx.uploadFile在安卓手机上面the same task is working问题解决
Dec 14 Javascript
vue组件如何被其他项目引用
Apr 13 Javascript
详解Angular2表单-模板驱动的表单(Template-Driven Forms)
Aug 04 Javascript
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
Dec 06 Javascript
详解js的作用域、预解析机制
Feb 05 Javascript
使用vue中的v-for遍历二维数组的方法
Mar 07 Javascript
JS如何使用剪贴板操作Clipboard API
May 17 Javascript
vue 把二维或多维数组转一维数组
Apr 24 Vue.js
原生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安全技术之 实现php基本安全
2010/09/04 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
ioncube_loader_win_5.2.dll的错误解决方法
2015/01/04 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
一段实用的php验证码函数
2016/05/19 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
2019/06/25 PHP
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
jQuery实现滑动星星评分效果(每日分享)
2019/11/13 jQuery
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
vue实现列表拖拽排序的功能
2020/11/02 Javascript
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
详解Python中的四种队列
2018/05/21 Python
对Python+opencv将图片生成视频的实例详解
2019/01/08 Python
python机器人运动范围问题的解答
2019/04/29 Python
python opencv调用笔记本摄像头
2019/08/28 Python
在python shell中运行python文件的实现
2019/12/21 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
HTML5制作酷炫音频播放器插件图文教程
2014/12/30 HTML / CSS
详解HTML5中的manifest缓存使用
2015/09/09 HTML / CSS
FLOS美国官网:意大利高级照明工艺的传奇
2018/08/07 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
戴尔马来西亚官网:Dell Malaysia
2020/05/02 全球购物
校园安全演讲稿
2014/05/09 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
报案材料怎么写
2015/05/25 职场文书
鸦片战争观后感
2015/06/09 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
500字作文之周记
2019/12/13 职场文书