基于JavaScript实现购物车功能


Posted in Javascript onFebruary 07, 2017

本文实例为大家分享了js实现购物车功能的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="js/jquery-1.12.4.js"></script>
</head>
<body>
<div id="shop">
  <button id="btAdd">我的购物车</button><br><br>

  <table id="cart">
    <thead>
    <tr>
      <th>单价</th>
      <th>数量</th>
      <th>小计</th>
      <th>操作</th>
    </tr>
    </thead>
    <tbody>

    </tbody>
    <tfoot>
    <tr>
      <td colspan="4">购物车总金额:<span id="total">0.00</span></td>
    </tr>
    </tfoot>
  </table>
</div>
<div id="footer"></div>
<script>
  $('#read .page li a').click(function(){
    var n=$(this).html();

    $(this).parent().parent().next().children('p:nth-child('+n+')').slideDown(2000);
    $(this).parent().parent().next().children('p:nth-child('+n+')').siblings().css('display','none');
  })

  $('#btAdd').click(function(){
    var p = randPrice();
    var c = randCount();
    $('#cart tbody').append('<tr>'+
      '<td>'+p+'</td>'+
      '<td><input type="text" value="'+c+'"></td>'+
      '<td>'+parseFloat((p*c).toFixed(2))+'</td>'+
      '<td><a href="#" rel="external nofollow" >×</a></td>'+
      '</tr>');
    $('#total').html( getTotal() );
  });

  //为“删除”按钮(即X号)绑定事件监听函数,注意:X是后添加的,很多X执行的行为是一样的——使用事件代理
  $('#cart tbody').delegate('td > a', 'click',function(event){
    event.preventDefault();
    var a = event.target;
    $(a).parent().parent().remove();

  });
  //为“购买数量”输入框做事件绑定——使用事件代理
  $('#cart tbody').delegate('td > input','change', function(event){

    var input = event.target;
    var count = input.value;
    var price = $(input).parent().prev().html();
    $(input).parent().next().html( price*count );
    $('#total').html( getTotal() );
  })
  //计算购物车的总金额
  function getTotal(){
    var sum = 0;
    $('#cart tbody tr td:nth-child(3)').each(function(i, td){
      sum += parseInt(td.innerHTML);
    })
    return sum;
  }


  function randPrice(){
    var p = Math.random()*100;
    p = p.toFixed(2);
    p = parseFloat(p);
    return p;
  }
  function randCount() {
    var c = Math.floor(Math.random() * 10 + 1);
    return c;

  }
  $('#header').load('php/header.php');
  $('#footer').load('php/footer.php');
  var theme=localStorage.getItem('ChoseTheme');
  applyTheme(theme)

</script>

</body>
</html>

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

Javascript 相关文章推荐
js 操作select和option常用代码整理
Dec 13 Javascript
Angular下H5上传图片的方法(可多张上传)
Jan 09 Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 Javascript
JS实现的base64加密解密操作示例
Apr 18 Javascript
Vue.js 实现数据展示全部和收起功能
Sep 05 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
在移动端使用vue-router和keep-alive的方法示例
Dec 02 Javascript
Web安全之XSS攻击与防御小结
Dec 13 Javascript
JavaScript对象的特性与实践应用深入详解
Dec 30 Javascript
js实现移动端吸顶效果
Jan 08 Javascript
javaScript Array api梳理
Mar 31 Javascript
使用compose函数优化代码提高可读性及扩展性
Jun 16 Javascript
js实现类bootstrap模态框动画
Feb 07 #Javascript
canvas实现探照灯效果
Feb 07 #Javascript
javascript数据类型详解
Feb 07 #Javascript
JS简单获取当前年月日星期的方法示例
Feb 07 #Javascript
vuejs指令详解
Feb 07 #Javascript
fullCalendar中文API官方文档
Feb 07 #Javascript
JS常用倒计时代码实例总结
Feb 07 #Javascript
You might like
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
解密效果
2006/06/23 Javascript
Convert Seconds To Hours
2007/06/16 Javascript
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
JavaScript-html标题滚动效果的简单实现
2016/09/08 Javascript
H5实现中奖记录逐行滚动切换效果
2017/03/13 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
Node.js微信 access_token ( jsapi_ticket ) 存取与刷新的示例
2017/09/30 Javascript
详解如何构建一个Angular6的第三方npm包
2018/09/07 Javascript
jQuery实现点击图标div循环放大缩小功能
2018/09/30 jQuery
微信小程序弹窗禁止页面滚动的实现代码
2020/12/30 Javascript
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python实现连接postgresql数据库的方法分析
2017/12/27 Python
Python实现接受任意个数参数的函数方法
2018/04/21 Python
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
深入浅析Python 命令行模块 Click
2020/03/11 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
智利最大的网上商店:Linio智利
2016/11/24 全球购物
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
高中体育教学反思
2014/01/24 职场文书
自我评价的范文
2014/02/02 职场文书
计算机通信专业推荐信
2014/02/22 职场文书
保密工作责任书
2014/04/16 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
法制演讲稿
2014/09/10 职场文书