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 相关文章推荐
javascript之通用简单的table选项卡实现(二)
May 09 Javascript
基于jquery的Repeater实现代码
Jul 17 Javascript
php图像生成函数之间的区别分析
Dec 06 Javascript
ajax不执行success回调而是执行了error回调
Dec 10 Javascript
当jQuery1.7遇上focus方法的问题
Jan 26 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
webpack常用配置项配置文件介绍
Nov 07 Javascript
jquery ui sortable拖拽后保存位置
Apr 27 jQuery
Bootstrap Table从零开始
Jun 30 Javascript
ReactNative实现图片上传功能的示例代码
Jul 11 Javascript
在react项目中使用antd的form组件,动态设置input框的值
Oct 24 Javascript
详细聊聊浏览器是如何看闭包的
Nov 11 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中计算未知长度的字符串哪个字符出现的次数最多的代码
2012/08/14 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
jquery.fileEveryWhere.js 一个跨浏览器的file显示插件
2011/10/24 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
JS实现向表格行添加新单元格的方法
2015/03/30 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JS获取下拉框显示值和判断单选按钮的方法
2015/07/09 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
Vue 实现简易多行滚动&quot;弹幕&quot;效果
2020/01/02 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
[02:47]3.19DOTA2发布会 国服成长历程回顾
2014/03/25 DOTA
[00:21]DOTA2亚洲邀请赛 Logo演绎
2015/02/07 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
python实现井字棋游戏
2020/03/30 Python
Python实现的栈(Stack)
2018/01/26 Python
Python subprocess模块详细解读
2018/01/29 Python
python实现SOM算法
2018/02/23 Python
django_orm查询性能优化方法
2018/08/20 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
安全生产汇报材料
2014/02/17 职场文书
《胖乎乎的小手》教学反思
2014/02/26 职场文书
《曹刿论战》教学反思
2014/03/02 职场文书
房地产工程部经理岗位职责
2015/04/09 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
在校学生证明格式
2015/06/24 职场文书
女儿满月酒致辞
2015/07/29 职场文书
高三数学教学反思
2016/02/18 职场文书
银行求职信范文
2019/05/13 职场文书
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript