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中的Screen屏幕对象
Jan 16 Javascript
Jquery Ajax.ashx 高效分页实现代码
Oct 20 Javascript
jquery限定文本框只能输入数字即整数和小数
Nov 29 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
Apr 29 Javascript
修改或扩展jQuery原生方法的代码实例
Jan 13 Javascript
canvas滤镜效果实现代码
Feb 06 Javascript
基于vue.js路由参数的实例讲解——简单易懂
Sep 07 Javascript
简单谈谈js的数据类型
Sep 25 Javascript
微信小程序之页面跳转和参数传递的实现
Sep 29 Javascript
angular2路由之routerLinkActive指令【推荐】
May 30 Javascript
vue项目中锚点定位替代方式
Nov 13 Javascript
JSONObject与JSONArray使用方法解析
Sep 28 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自定义函数之递归删除文件及目录
2010/08/08 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
通达OA公共代码 php常用检测函数
2011/12/14 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
ThinkPHP中redirect用法分析
2014/12/05 PHP
PHP实现多图上传和单图上传功能
2018/05/17 PHP
thinkphp5使用无限极分类
2019/02/18 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
用JavaScript显示随机图像或引用
2009/04/21 Javascript
js中查找最近的共有祖先元素的实现代码
2010/12/30 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
jquery1.10给新增元素绑定事件的方法
2014/03/06 Javascript
Jquery on绑定的事件 触发多次实例代码
2016/12/08 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
[05:05]给小松五分钟系列 第二期介绍为什么打DOTA2
2014/07/02 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
Linux上安装Python的PIL和Pillow库处理图片的实例教程
2016/06/23 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
python中如何使用正则表达式的集合字符示例
2017/10/09 Python
python实现扫描日志关键字的示例
2018/04/28 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
365 Tickets英国:全球景点门票
2019/07/06 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
银行行长竞聘演讲稿
2014/04/23 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
《有余数的除法》教学反思
2016/02/22 职场文书
教你怎么用Python操作MySql数据库
2021/05/31 Python
Python使用DFA算法过滤内容敏感词
2022/04/22 Python