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 相关文章推荐
DWR Ext 加载数据
Mar 22 Javascript
jquery.artwl.thickbox.js  一个非常简单好用的jQuery弹出层插件
Mar 01 Javascript
JS实现单击输入框弹出选择框效果完整实例
Dec 14 Javascript
JS仿Base.js实现的继承示例
Apr 07 Javascript
javascript编写简易计算器
May 06 Javascript
React.js中常用的ES6写法总结(推荐)
May 09 Javascript
webpack本地开发环境无法用IP访问的解决方法
Mar 20 Javascript
webpack4.x CommonJS模块化浅析
Nov 09 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
Dec 03 Javascript
详解VUE单页应用骨架屏方案
Jan 17 Javascript
详解一个小实例理解js原型和继承
Apr 24 Javascript
vue更改数组中的值实例代码详解
Feb 07 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的FTP学习(三)
2006/10/09 PHP
Ajax实现对静态页面的文章访问统计功能示例
2016/10/10 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
JSF中confirm弹出框的用法示例介绍
2014/01/07 Javascript
JS实现div居中示例
2014/04/17 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
理解jquery事件冒泡
2016/01/03 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
2016/05/17 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
python中xrange和range的区别
2014/05/13 Python
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
python实现图书管理系统
2018/03/12 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
python async with和async for的使用
2019/06/20 Python
kali中python版本的切换方法
2019/07/11 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
html5的input的required使用中遇到的问题及解决方法
2018/04/24 HTML / CSS
澳大利亚百货公司:David Jones
2018/02/08 全球购物
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
给儿子的表扬信
2014/01/15 职场文书
常务副总经理岗位职责
2014/04/12 职场文书
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
单位委托书格式范本
2014/09/29 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书
论文答辩开场白大全
2015/05/27 职场文书
初中数学教学反思范文
2016/02/17 职场文书
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
GoFrame基于性能测试得知grpool使用场景
2022/06/21 Golang