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 相关文章推荐
dojo 之基础篇
Mar 24 Javascript
JavaScript实现找出字符串中第一个不重复的字符
Sep 03 Javascript
Angularjs 基础入门
Dec 26 Javascript
ajax+jQuery实现级联显示地址的方法
May 06 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 Javascript
Node.js批量给图片加水印的方法
Nov 15 Javascript
JavaScript设计模式之代理模式详解
Jun 09 Javascript
10个在JavaScript开发中常遇到的BUG
Dec 18 Javascript
webpack-dev-server远程访问配置方法
Feb 22 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
Nov 08 Javascript
javascript中undefined的本质解析
Jul 31 Javascript
vue项目中openlayers绘制行政区划
Dec 24 Vue.js
解决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,不用COM,生成excel文件
2006/10/09 PHP
一个简洁的多级别论坛
2006/10/09 PHP
php使用exec shell命令注入的方法讲解
2013/11/12 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
基于Laravel5.4实现多字段登录功能方法示例
2017/08/11 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
javascript &amp;&amp;和||运算法的另类使用技巧
2009/11/28 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
Javascript自定义函数判断网站访问类型是PC还是移动终端
2014/01/10 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
学习JavaScript图片预加载模块
2016/11/07 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
利用JS做网页特效_大图轮播(实例讲解)
2017/08/09 Javascript
js禁止浏览器页面后退功能的实例(推荐)
2017/09/01 Javascript
使用javascript做时间倒数读秒功能的实例
2019/01/23 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python每天必学之bytes字节
2016/01/28 Python
python实现自动发送邮件
2018/06/20 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
详解django中url路由配置及渲染方式
2019/02/25 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
用Python实现BP神经网络(附代码)
2019/07/10 Python
简单了解python数组的基本操作
2019/11/26 Python
Python jieba库分词模式实例用法
2021/01/13 Python
机关道德讲堂实施方案
2014/03/15 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL