基于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 相关文章推荐
javascript的事件描述
Sep 08 Javascript
JS实现拖动示例代码
Nov 01 Javascript
ExtJS判断IE浏览器类型的方法
Feb 10 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
Apr 14 Javascript
归纳下js面向对象的几种常见写法总结
Aug 24 Javascript
使用vue.js实现联动效果的示例代码
Jan 10 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
Mar 08 Javascript
vue中用动态组件实现选项卡切换效果
Mar 25 Javascript
基于Bootstrap表单验证功能
Nov 17 Javascript
jQuery的ztree仿windows文件新建和拖拽功能的实现代码
Dec 05 jQuery
基于node.js实现爬虫的讲解
Feb 18 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
PHP XML操作类DOMDocument
2009/12/16 PHP
简单说说PHP优化那些事(经验分享)
2014/11/27 PHP
Yii2主题(Theme)用法详解
2016/07/23 PHP
php 三大特点:封装,继承,多态
2017/02/19 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
2014/08/16 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
JavaScript中removeChild 方法开发示例代码
2016/08/15 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
基于vue中的scoped坑点解说
2020/09/04 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
对python多线程与global变量详解
2018/11/09 Python
python os.fork() 循环输出方法
2019/08/08 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
PHP如何删除一个Cookie值
2012/11/15 面试题
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
2014全国两会学习心得体会2000字
2014/03/10 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
给校长的建议书600字
2014/05/15 职场文书
英语演讲开场白
2015/05/29 职场文书
婚宴致辞
2015/07/28 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
民事纠纷协议书
2016/03/23 职场文书