用JavaScript做简易的购物车的代码示例


Posted in Javascript onOctober 20, 2017

下面是我做的一个超简单的购物车,全部都是用原生js做的

css

<style>
  table{
   text-align: center;

  }
  table img{
   width: 50px;
  }
 a {
  text-decoration: none;
  color: red;
}
 </style>

body

<table border="1" cellspacing="0">
  <thead>
  <tr>
   <th>全选 <input type="checkbox" id="ckAll"/></th>
   <th>商品</th>
   <th>单价</th>
   <th>数量</th>
   <th>操作</th>
  </tr>
  </thead>
  <tbody>
   <tr>
    <td><input type="checkbox" name="ck"/></td>
    <td>![](../img2/1.png)</td>
    <td>3</td>
    <td><input type="number" max="10" min="0" step="1" value="2"/></td>
    <td><a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="del">删除</a></td>
   </tr>
   <tr><td><input type="checkbox" name="ck"/></td>
    <td>![](../img2/2.png)</td>
    <td>3</td>
    <td><input type="number" max="10" min="0" step="1" value="3"/></td>
    <td><a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="del">删除</a></td>


   </tr>
   <tr><td><input type="checkbox" name="ck"/></td>
    <td>![](../img2/3.png)</td>
    <td>3</td>
    <td><input type="number" max="10" min="0" step="1" value="1"/></td>
    <td><a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="del">删除</a></td>


   </tr></tbody>
  <tfoot>
  <tr>
   <td colspan="3" align="right">总价:</td>
   <td colspan="2"></td>
  </tr>
  </tfoot>

 </table>
 <a href="javascript:void(0);" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="dels">删除选中项</a>

js

<script>
  window.onload=function(){
   document.getElementById("ckAll").onclick=function(){//当点击全选的复合框时触发事件
    var cks = document.getElementsByName("ck");//获取ck对象
    for(var i=0;i<cks.length;i++){ //循环得到单个tr
     cks[i].checked=this.checked; //得到的每个tr的点击都等于ckAll的点击
    }
   }
   var cks = document.getElementsByName("ck");//创建ck对象
   for(var i=0;i<cks.length;i++){ //循环得到单个tr
    cks[i].onclick=function(){ // 当点击每个当tr的时候都会触发点击事件
      for(var i=0;i<cks.length;i++){// 循环得到单个td
       if(!cks[i].checked){ //如果单个特点的点击等于false 就返回
        document.getElementById("ckAll").checked = false;//那么ckAll就等于false
        return;
       }
      }
     document.getElementById("ckAll").checked = true;//否则就等于true 说明为全选状态
    }
   }
   getSum();
    function getSum(){ //计算的方法
     var tbody = document.getElementsByTagName("tbody")[0];//创建tbody对象
     var sum =0;//先定义sum为0
      for(var i =0;i<tbody.children.length;i++){ //循环得到tr
       var tr = tbody.children[i]; //tbody中的子节点就是tr
       var td = tr.children; //tr的子节点是 td
       var price = parseFloat(td[2].innerText);//td的第二列是价格 得到价格
       var count = parseFloat(td[3].children[0].value); //第三列是数量
       sum+=price*count; //总和就等于价格*数量
       td[3].children[0].onblur=function(){ //当失去焦点的时候触发事件
        getSum();
       }
      }
     var tfoot = document.getElementsByTagName("tfoot")[0]; //创景tfoot对象
     tfoot.children[0].children[1].innerHTML =sum; //tfootd子节点 等于总和
    }

   var dels = document.getElementsByClassName("del");//创建del对象
   for(var i = 0;i<dels.length;i++){//循环得到
    dels[i].onclick=function(){
     this.parentNode.parentNode.remove();
     getSum();
    }
   }
   document.getElementsByClassName("dels")[0].onclick=function(){
     var cks = document.getElementsByName("ck");
    for(var i = cks.length-1;i>=0;i--){
      if(cks[i].checked){
       cks[i].parentNode.parentNode.remove();
      }
    }
    getSum();

   }

  }
</script>

效果图

用JavaScript做简易的购物车的代码示例

这个购物车是在学习js时做的,比较简单,但基本功能还是有的:

  1. 可以全选,单个选择.
  2. 可以单个的删除,删除选中项.
  3. 总计可以根据数量的变化而变化.

大家用在线的编辑器查看一下效果会更好.

如果有问题的话,可以随时交流... (过两天会用jQury在做一个购物车的例子)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 5 新增 Array 方法实现介绍
Feb 06 Javascript
js arguments对象应用介绍
Nov 28 Javascript
JavaScript中的类与实例实现方法
Jan 23 Javascript
javascript定时器完整实例
Feb 10 Javascript
JavaScript 数组的深度复制解析
Nov 02 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
JS实现在文本指定位置插入内容的简单示例
Dec 22 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
Dec 22 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
Jan 30 Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
jquery轻量级数字动画插件countUp.js使用详解
Oct 17 jQuery
基于axios 的responseType类型的设置方法
Oct 29 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
Oct 20 #Javascript
phantomjs导出html到pdf的方法总结
Oct 19 #Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
Oct 19 #Javascript
vue resource post请求时遇到的坑
Oct 19 #Javascript
vue Element-ui input 远程搜索与修改建议显示模版的示例代码
Oct 19 #Javascript
JavaScript适配器模式详解
Oct 19 #Javascript
JavaScript门面模式详解
Oct 19 #Javascript
You might like
深入php self与$this的详解
2013/06/08 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
js 分栏效果实现代码
2009/08/29 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
jquery通过visible来判断标签是否显示或隐藏
2014/05/08 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
js实现横向百叶窗效果网页切换动画效果的方法
2015/03/02 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
简单介绍JavaScript的变量和数据类型
2015/06/03 Javascript
IE10中flexigrid无法显示数据的解决方法
2015/07/26 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
jQuery内容折叠效果插件用法实例分析(附demo源码)
2016/04/28 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
jquery attr()设置和获取属性值实例教程
2016/09/25 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
jQuery实现动态操作table行
2020/11/23 jQuery
python插入数据到列表的方法
2015/04/30 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
python自定义线程池控制线程数量的示例
2019/02/22 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
美国著名手表网站:Timepiece
2017/11/15 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
会议主持人开场白台词
2015/05/28 职场文书