使用原生JS实现火锅点餐小程序(面向对象思想)


Posted in Javascript onDecember 10, 2019

本次小程序采用ES6开发标准,不会的宝宝们请先学习,再来观看吧!

使用条件:使用ES6标准开发;因为采用了Bootstrap在线,所以需要联网;VSCode开发工具,在本地服务器中打开。

 代码展示:

使用原生JS实现火锅点餐小程序(面向对象思想)

 Demo.html(网页),Demo.css(样式),Test01.js(菜单类),Test02.js(循环菜单),Test03.js(增,删操作)

 下面进行一一展示:

 Demo.html(网页):

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
  <link rel="stylesheet" href="Demo.css" rel="external nofollow" >
  <script type="text/javascript" src="Test03.js"></script>
</head>
<body>
  <div class="container">
    <div class="row">
      <div class="col-md-6">
        <table id='table1' class="table table-bordered table-striped">
          <tr>
            <td>名称</td>
            <td>价格</td>
            <td>图片</td>
            <td>操作</td>
          </tr>
          <tbody id = 'tbody'></tbody>
        </table>
      </div>
      <div class="col-md-6">
        <table id='table2' class="table table-bordered" style="background-color:burlywood;">
          <tr>
            <td>名称</td>
            <td>价格</td>
            <td>数量</td>
            <td>操作</td>
          </tr>
          <tbody id="tbody1"></tbody>
        </table>
      </div>
    </div>
  </div>
  <script type="module">
    import {db_foot} from './Test02.js';
    let contents = [];
    window.onload = function(){
      for(const foots of db_foot()){
        contents.push(`
          <tr>
            <td>${foots.name}</td>
            <td>${foots.price}</td>
            <td>${foots.pic}</td>
            <td><button value="${foots.name}" money="${foots.price}" class="btn btn-sm btn-info" οnclick="sss(this)">加入菜单</button></td>
          </tr>
        `);
        document.getElementById('tbody').innerHTML = contents.join("");
      };
    };
  </script>
 
</body>
</html>

Demo.css(样式):

*{margin: 0;padding: 0;}
tr,td{
  text-align:center;
  line-height: 20px;
}
td{
  vertical-align: middle;
}

Test01.js(菜单类):

export default class Person{
  constructor(name,price,pic){
    this.name = name;
    this.price = price;
    this.pic = pic;
  }
}

Test02.js(循环菜单):

import Person from './Test01.js';
 
export function db_foot(){
  let foots = new Array();
  foots.push(new Person('鱼香肉丝',100,''));
  foots.push(new Person('宫保鸡丁',200,''));
  foots.push(new Person('菠萝吹雪',300,''));
  return foots;
}

Test03.js(增,删操作):

let contents = [];
function sss(e){
  var flag = true;
  var zhi = e.getAttribute("value");
  var num = e.getAttribute("money");
  var arr_tr =document.getElementById("table2").getElementsByTagName("tr");
  let i;
  for(i=0 ; i<arr_tr.length ; i++){
    var td = arr_tr[i].firstElementChild.innerHTML;
    //重复点菜,修改数量和金钱
    if(td == zhi){
      flag = false;
      //个数
      var count = arr_tr[i].firstElementChild.nextElementSibling.nextElementSibling;
      var sum = count.innerHTML = parseFloat(count.innerHTML) + 1; 
      //金钱数
      var qian = arr_tr[i].firstElementChild.nextElementSibling.innerHTML = sum * num; 
      break;
    }
  }
  if(flag){
    let tbody1 = document.getElementById("tbody1");
    var tr = document.createElement("tr");
    //名称
    var td1 = document.createElement("td");
    td1.innerHTML = `${zhi}`;
    //价钱
    var td2 = document.createElement("td");
    td2.innerHTML = `${num}`;
    //数量
    var td3 = document.createElement("td");
    td3.innerHTML = `1`;
    //操作
    var td4 = document.createElement("td");
    td4.innerHTML = `<button class="btn btn-sm btn-warning" οnclick='shanchu(this)'>删除</button>`;
    //插入
    tr.appendChild(td1);
    tr.appendChild(td2);
    tr.appendChild(td3);
    tr.appendChild(td4);
    tbody1.appendChild(tr);
  }
}
//删除
function shanchu(obj){
  obj.parentNode.parentNode.parentNode.removeChild(obj.parentNode.parentNode);
}

总结

以上所述是小编给大家介绍的使用原生JS实现火锅点餐小程序(面向对象思想),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
在图片上显示左右箭头类似翻页的代码
Mar 04 Javascript
jquery.messager.js插件导致页面抖动的解决方法
Jul 14 Javascript
jQuery插件ajaxFileUpload实现异步上传文件效果
Apr 14 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
Jun 23 Javascript
Js的Array数组对象详解
Feb 22 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
Jun 28 Javascript
vue 动态修改a标签的样式的方法
Jan 18 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
Aug 20 Javascript
React Hooks的深入理解与使用
Nov 12 Javascript
vue如何获取自定义元素属性参数值的方法
May 14 Javascript
JavaScript中使用Spread运算符的八种方法总结
Jun 18 Javascript
vue全局使用axios的操作
Sep 08 Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 #Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 #Javascript
vue实现随机验证码功能(完整代码)
Dec 10 #Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 #Javascript
基于vue实现图片验证码倒计时60s功能
Dec 10 #Javascript
使用Bootstrap做一个朝代历史表
Dec 10 #Javascript
JS实现拼图游戏
Jan 29 #Javascript
You might like
基于PHP CURL获取邮箱地址的详解
2013/06/03 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
PHP文件上传小程序 适合初学者学习!
2019/05/23 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
JavaScript组件开发之输入框加候选框
2017/03/10 Javascript
js 获取json数组里面数组的长度实例
2017/10/31 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
微信小程序云开发如何使用云函数生成二维码
2019/05/18 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
基于Python的身份证号码自动生成程序
2014/08/15 Python
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Mac在python3环境下安装virtualwrapper遇到的问题及解决方法
2019/07/09 Python
Django框架视图介绍与使用详解
2019/07/18 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python实现ip地址查询经纬度定位详解
2019/08/30 Python
python操作gitlab API过程解析
2019/12/27 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
Python 实现网课实时监控自动签到、打卡功能
2020/03/12 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
python使用re模块爬取豆瓣Top250电影
2020/10/20 Python
phpquery中文手册
2021/03/18 PHP
物理教学随笔感言
2014/02/22 职场文书
《火烧云》教学反思
2014/04/12 职场文书
个人授权委托书
2014/09/15 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
2014公司年终工作总结
2014/12/19 职场文书
教师辞职信范文
2015/02/28 职场文书
呐喊读书笔记
2015/06/30 职场文书
导游词之台湾安平古堡
2019/12/25 职场文书
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android