JavaScript实现购物车基本功能


Posted in Javascript onJuly 21, 2017

JavaScript购物车最基本的功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<!DOCTYPE html> 

<html> 
  <head> 
    <meta charset="UTF-8"> 
    <title></title> 
    <style type="text/css"> 
      table{ 
        border-collapse: collapse; 
      } 
      th{ 
        width: 80px; 
        height: 30px; 
      } 
      td{ 
        text-align: center; 
        line-height: 30px; 
      } 
    </style> 
  </head> 
  <body> 
    <div class="box"> 
      <table border="" cellspacing="" cellpadding=""> 
        <thead> 
          <th ><input type="checkbox" id="checkedAll"/>选择</th> 
          <th>商品</th> 
          <th>价格</th> 
          <th>数量</th> 
          <th>总价</th> 
          <th>操作</th> 
        </thead> 
        <tbody id="tb"> 
          <tr> 
            <td><input type="checkbox" /></td> 
            <td>黄焖鸡米饭1</td> 
            <td>10</td> 
            <td> 
              <span class="jian">-</span> 
              <input type="text" style="width: 30px;text-align: center;" value="1" readonly="readonly"/> 
              <span class="jia">+</span> 
            </td> 
            <td> 
              <span style="color: red;">10</span> 
            </td> 
            <td> 
              <a style="cursor: pointer;">删除</a> 
            </td> 
          </tr> 
          <tr> 
            <td><input type="checkbox" /></td> 
            <td>黄焖鸡米饭2</td> 
            <td>20</td> 
            <td> 
              <span class="jian">-</span> 
              <input type="text" style="width: 30px;text-align: center;"value="1" readonly="readonly"/> 
              <span class="jia">+</span> 
            </td> 
            <td> 
              <span style="color: red;">20</span> 
            </td> 
            <td> 
              <a style="cursor: pointer;">删除</a> 
            </td> 
          </tr> 
        </tbody> 
      </table> 
    </div> 
  </body> 
  <script> 
    window.onload=function(){ 
      var checkedAll=document.getElementById("checkedAll") 
      var tb=document.getElementById("tb") 
      var oinput=tb.getElementsByTagName('input') 
      var jian=document.getElementsByClassName('jian') 
      var jia=document.getElementsByClassName('jia') 
      var shanchu=tb.getElementsByTagName('a') 
      console.log(shanchu) 
       
      //全选 
      checkedAll.onclick=function(){ 
        for(var i=0;i<oinput.length;i++){ 
          oinput[i].checked=this.checked 
        } 
      } 
      //当下级有一个没有选中时那么全选按钮则为false状态 
      for(var i=0;i<oinput.length;i++){ 
        oinput[i].onclick=function(){ 
          var qx=true 
          for(var i=0;i<oinput.length;i++){ 
            if(oinput[i].checked==false){ 
              qx=false 
            } 
          } 
          checkedAll.checked=qx 
           
        } 
      } 
      checkedAll.onclick=function(){ 
        for(var i=0;i<oinput.length;i++){ 
          oinput[i].checked=this.checked 
        } 
    } 
 
    for(var i=0;i<oinput.length;i++){ 
      oinput[i].onclick=function(){ 
        var qx = true; 
        for(i=0;i<oinput.length;i++){ 
            if(oinput[i].checked==false){ 
              qx=false 
            } 
          } 
          checkedAll.checked=qx 
         
      } 
    } 
   
      //加 
      for(var i=0;i<jia.length;i++){ 
        jia[i].onclick=function(){ 
          //previousSibling上一个兄弟节点  
          var val = parseInt(this.previousSibling.previousSibling.value); 
          this.previousSibling.previousSibling.value = val + 1; 
          jisuan(this) 
        } 
         
      } 
      //减 
      for(var i=0;i<jian.length;i++){ 
        jian[i].onclick=function(){ 
          //nextSibling下一个兄弟节点 
          var val = parseInt(this.nextSibling.nextSibling.value); 
          if(val > 1) { 
            this.nextSibling.nextSibling.value = val - 1; 
          } 
          jisuan(this) 
        } 
      } 
      //操作删除 
       
      for(var i=0;i<shanchu.length;i++){ 
        shanchu[i].onclick=function(){ 
          var conf = confirm('确定删除这件商品吗?'); 
          //parentNode父节点 
          console.log(this.parentNode.parentNode) 
          if(conf) { 
          //removeChild 删除节点  
            tb.removeChild(this.parentNode.parentNode);  
          } 
        } 
      } 
       
      //总价 
      function jisuan(t){ 
        var tr=t.parentNode.parentNode  
        var result=document.getElementById("result") 
          var td=tr.getElementsByTagName('td') 
          td[4].getElementsByTagName('span')[0].innerHTML = parseInt(td[2].innerHTML)*parseInt(t.parentNode.getElementsByTagName('input')[0].value) 
      } 
    } 
  </script> 
</html>

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

Javascript 相关文章推荐
jQuery中add实现同时选择两个id对象
Oct 22 Javascript
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
解决jquery异步按一定的时间间隔刷新问题
Dec 10 Javascript
js截取小数点后几位的写法
Nov 14 Javascript
JavaScript获得表单target属性的方法
Apr 02 Javascript
javascript实现信息增删改查的方法
Jul 25 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
Feb 13 Javascript
详解vue表单验证组件 v-verify-plugin
Apr 19 Javascript
详解AngularJS 路由 resolve用法
Apr 24 Javascript
JS原型继承四步曲及原型继承图一览
Nov 28 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
Mar 22 Javascript
解决html input验证只能输入数字,不能输入其他的问题
Jul 21 #Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 #jQuery
基于input框覆盖掉数字英文的实例讲解
Jul 21 #Javascript
浅谈通过JS拦截 pushState和replaceState事件
Jul 21 #Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
Jul 20 #Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
Jul 20 #Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 #Javascript
You might like
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
php实现获取及设置用户访问页面语言类
2014/09/24 PHP
Laravel开启跨域请求的方法
2019/10/13 PHP
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
使用script的src实现跨域和类似ajax效果
2014/11/10 Javascript
JavaScript判断是否为数组的3种方法及效率比较
2015/04/01 Javascript
Js实现无刷新删除内容
2015/04/29 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
javascript操作cookie
2017/01/17 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现
2017/03/11 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
使用Node.js实现简易MVC框架的方法
2017/08/07 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
微信小程序progress组件使用详解
2018/01/31 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
javascript实现blob加密视频源地址的方法
2019/08/08 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
keras获得model中某一层的某一个Tensor的输出维度教程
2020/01/24 Python
python列表返回重复数据的下标
2020/02/10 Python
在 Python 中使用 7zip 备份文件的操作
2020/12/11 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
html5 postMessage解决跨域、跨窗口消息传递方案
2016/12/20 HTML / CSS
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
请写出一段Python代码实现删除一个list里面的重复元素
2015/12/29 面试题
机关出纳岗位职责
2014/04/03 职场文书
国庆节标语大全
2014/10/08 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
2016寒假假期总结
2015/10/10 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
解决MySQL Varchar 类型尾部空格的问题
2022/04/06 MySQL