使用原生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 相关文章推荐
User Scripts: Video Download by User Scripts
May 14 Javascript
jquery 上下滚动广告
Jun 17 Javascript
jQuery教程 $()包装函数来实现数组元素分页效果
Aug 13 Javascript
JS实现根据出生年月计算年龄
Jan 10 Javascript
jquery实现的导航固定效果
Apr 28 Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 Javascript
jQuery+CSS3实现3D立方体旋转效果
Nov 10 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
vue学习之mintui picker选择器实现省市二级联动示例
Oct 12 Javascript
vue父组件给子组件的组件传值provide inject的方法
Oct 23 Javascript
VueX模块的具体使用(小白教程)
Jun 05 Javascript
node.js使用express-fileupload中间件实现文件上传
Jul 16 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面向对象编程快速入门
2006/12/14 PHP
php 分页原理详解
2009/08/21 PHP
php设计模式之工厂方法模式分析【星际争霸游戏案例】
2020/01/23 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
JavaScript获取GridView中用户点击控件的行号,列号
2009/04/14 Javascript
jquery插件lazyload.js延迟加载图片的使用方法
2014/02/19 Javascript
JavaScript获取并更改input标签name属性的方法
2015/07/02 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
浅析Ajax语法
2016/12/05 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
利用babel将es6语法转es5的简单示例
2017/12/01 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
JavaScript学习笔记之DOM基础操作实例小结
2019/01/09 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
2019/11/07 Javascript
Vue+Node实现的商城用户管理功能示例
2019/12/23 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
2020/11/18 Vue.js
Webpack3+React16代码分割的实现
2021/03/03 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
Python中set与frozenset方法和区别详解
2016/05/23 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
详解python变量与数据类型
2020/08/25 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
澳大利亚吉他在线:Artist Guitars
2017/03/30 全球购物
Omio意大利:全欧洲低价大巴、火车和航班搜索和比价
2017/12/02 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
高级文秘工作总结的自我评价
2013/09/28 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
养成教育主题班会
2015/08/13 职场文书
Python中文纠错的简单实现
2021/07/07 Python