用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 div 遮罩层封锁整个页面
Jul 10 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
Dec 02 Javascript
jQuery实现网站添加高亮突出显示效果的方法
Jun 26 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
Aug 14 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
Sep 19 Javascript
JS图片定时翻滚效果实现方法
Jun 21 Javascript
详解AngularJS中ng-src指令的使用
Sep 07 Javascript
JavaScript无阻塞加载和defer、async详解
Feb 26 Javascript
深入学习js函数的隐式参数 arguments 和 this
Jun 24 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
Jul 24 Javascript
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
Jun 15 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
音乐朗读剧《MARS RED》2021年TV动画化决定!
2020/03/06 日漫
Notice: Trying to get property of non-object problem(PHP)解决办法
2012/03/11 PHP
PHP四种基本排序算法示例
2015/04/09 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
使用jQuery简化Ajax开发 Ajax开发入门
2009/10/14 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
一次$.getJSON不执行的简单记录
2016/07/19 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
webpack4.x开发环境配置详解
2018/08/04 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Django REST framework 分页的实现代码
2019/06/19 Python
Pytorch根据layers的name冻结训练方式
2020/01/06 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
揭牌仪式主持词
2014/03/19 职场文书
幼儿园儿童节主持词
2014/03/21 职场文书
图书馆志愿者活动总结
2014/06/27 职场文书
护士求职信
2014/07/05 职场文书
云台山导游词
2015/02/03 职场文书
计生个人工作总结
2015/02/28 职场文书
离职信范本
2015/06/23 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
读《皮囊》有感:理解是对他人的最大的善举
2019/11/14 职场文书