用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中Array 对象相关的几个方法
Dec 22 Javascript
在js中单选框和复选框获取值的方式
Nov 06 Javascript
Js放到HTML文件中的哪个位置有什么区别
Aug 21 Javascript
jQuery遍历Table应用示例
Apr 09 Javascript
JavaScript编程的10个实用小技巧
Apr 18 Javascript
最新最热最实用的15个jQuery插件汇总
Jul 05 Javascript
快速学习jQuery插件 Form表单插件使用方法
Dec 01 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
Aug 23 Javascript
JS实现表单验证功能(验证手机号是否存在,验证码倒计时)
Oct 11 Javascript
深入理解JavaScript继承的多种方式和优缺点
May 12 Javascript
微信小程序 根据不同用户切换不同TabBar
Apr 21 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
实现树状结构的两种方法
2006/10/09 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
jQuery判断元素上是否绑定了指定事件的方法
2015/03/17 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
js闭包学习心得总结
2018/04/17 Javascript
微信小程序button标签open-type属性原理解析
2020/01/21 Javascript
js实现轮播图特效
2020/05/28 Javascript
python里对list中的整数求平均并排序
2014/09/12 Python
python实现感知器算法详解
2017/12/19 Python
python 正确保留多位小数的实例
2018/07/16 Python
Python实现端口检测的方法
2018/07/24 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
Python通用函数实现数组计算的方法
2019/06/13 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
如何利用Python写个坦克大战
2020/11/18 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
法律系毕业生自荐信范文
2014/03/27 职场文书
小学生感恩老师演讲稿
2014/08/28 职场文书
骨干教师申报材料
2014/12/17 职场文书
2015年毕业生个人自荐书
2015/03/24 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
基于Python实现流星雨效果的绘制
2022/03/18 Python