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,mootools,dojo)使用适合自己的编程别名命名
Sep 14 Javascript
表单元素与非表单元素刷新区别详细解析
Nov 06 Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 Javascript
js实现文本框选中的方法
May 26 Javascript
jquery实现界面无刷新加载登陆注册
Jul 30 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
Sep 16 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
Mar 30 Javascript
JavaScript错误处理和堆栈追踪详解
Apr 18 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
JS如何生成随机验证码
Mar 02 Javascript
Ajax 的初步实现(使用vscode+node.js+express框架)
Jun 18 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 中英文语言转换类代码
2011/08/11 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
php实现检查文章是否被百度收录
2015/01/27 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
2017/09/26 PHP
php读取本地json文件的实例
2018/03/07 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
javascript开发技术大全-第3章 js数据类型
2011/07/03 Javascript
仅img元素创建后不添加到文档中会执行onload事件的解决方法
2011/07/31 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
IE中JS跳转丢失referrer问题的2个解决方法
2014/07/18 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
Vue动态获取width的方法
2018/08/22 Javascript
jQuery - AJAX load() 实例用法详解
2019/08/27 jQuery
Python函数式编程指南(二):从函数开始
2015/06/24 Python
pandas重新生成索引的方法
2018/11/06 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
澳大利亚网上玩具商店:Mr Toys Toyworld
2018/03/25 全球购物
会计电算化专业毕业生推荐信
2013/12/24 职场文书
劳动模范事迹材料
2014/01/19 职场文书
大学生作弊检讨书
2014/09/11 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
2014年售后服务工作总结
2014/11/18 职场文书
党员个人年度总结
2015/02/14 职场文书
比较node.js和Deno
2021/04/27 Javascript
基于flask实现五子棋小游戏
2021/05/25 Python
启动Tomcat时出现大量乱码的解决方法
2021/06/21 Java/Android
Python 数据科学 Matplotlib图库详解
2021/07/07 Python
Mysql数据库group by原理详解
2022/07/07 MySQL