原生js实现淘宝购物车功能


Posted in Javascript onJune 23, 2020

js淘宝购物车功能描述:

 1、点击“+”,单个商品数量加1,总数量加1;单个商品价格添加,总价也添加。
 2、点击“-”,单个商品数量减1,总数量减1;单个商品价格减少,总价也减少。
 当该商品数量为0时,点击依然为0;
 3、显示出总价,总数量和其中最贵的那个商品的价格。 

瞄一眼效果图:

原生js实现淘宝购物车功能

废话不多说,LU代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{padding:0;margin:0;}
#list,p{list-style:none;width:600px;margin:0 auto;}
#list li {width:600px;height:50px;line-height:50px;margin-top:20px;font-size:20px;}
#list li input{width:60px;height:40px;line-height:40px;}
.highlight{color:red;font-size:30px;font-weight:bold;}
</style>
<script>
window.onload = function () {

 var oUl = $('list');
 var totalNumber = $('totalNum');
 var totalPrice = $('totalPrice');
 var mostExpensive = $('mostExpensive');
 var aLi = oUl.getElementsByTagName('li');
 var maxPrice = [0];

 for ( var i = 0; i < aLi.length; i++ ) {
 price(aLi[i]);
 }

 function price(oLi) {

 var aBtn = oLi.getElementsByTagName('input');
 var oStrong = oLi.getElementsByTagName('strong')[0];
 var oEm = oLi.getElementsByTagName('em')[0];
 var oSpan = oLi.getElementsByTagName('span')[0];

 aBtn[0].onclick = function () {
  var num = Number(oStrong.innerHTML);
  var price = parseFloat(oEm.innerHTML);
  var numbers = Number(totalNumber.innerHTML);
  var prices = parseFloat(totalPrice.innerHTML);
  num--;
  if (num === 0) {
  // 如果该商品数量为0,,那么就得把它的价格从价格表中清除 
  var index = maxPrice.indexOf(price);
  if (index > -1) maxPrice.splice(index, 1);
  } else if (num < 0) {
  num = 0; 
  return;
  }
  numbers--;
  oStrong.innerHTML = num;
  oSpan.innerHTML = num * price + '元';
  totalNumber.innerHTML = numbers;
  totalPrice.innerHTML = prices - (num + 1) * price;
  mostExpensive.innerHTML = maxPrice[0];

 }
 aBtn[1].onclick = function () {

  var num = Number(oStrong.innerHTML);
  var price = parseFloat(oEm.innerHTML);
  var numbers = Number(totalNumber.innerHTML);
  var prices = parseFloat(totalPrice.innerHTML);

  num++;
  numbers++;
  if (maxPrice.indexOf(price) < 0) {
  maxPrice.push(price)
  maxPrice.sort(function (a,b) {return b - a});
  }
  oStrong.innerHTML = num;
  oSpan.innerHTML = num * price + '元';
  totalNumber.innerHTML = numbers;
  totalPrice.innerHTML = prices + num * price;
  mostExpensive.innerHTML = maxPrice[0];
 }
 }
 function $(id) {return document.getElementById(id);}
}
</script>
</head>

<body>
<ul id="list">
 <li>
 <input type="button" value="-" />
 <strong>0</strong>
 <input type="button" value="+" />
 单价:<em>12.5元</em>
 小计:<span class="highlight">0元</span>
 </li>
 <li>
 <input type="button" value="-" />
 <strong>0</strong>
 <input type="button" value="+" />
 单价:<em>10.5元</em>
 小计:<span class="highlight">0元</span>
 </li>
 <li>
 <input type="button" value="-" />
 <strong>0</strong>
 <input type="button" value="+" />
 单价:<em>8.5元</em>
 小计:<span class="highlight">0元</span>
 </li>
 <li>
 <input type="button" value="-" />
 <strong>0</strong>
 <input type="button" value="+" />
 单价:<em>8元</em>
 小计:<span class="highlight">0元</span>
 </li>
 <li>
 <input type="button" value="-" />
 <strong>0</strong>
 <input type="button" value="+" />
 单价:<em>14.5元</em>
 小计:<span class="highlight">0元</span>
 </li>
</ul>

<p>
商品合计共:<span class="highlight" id="totalNum">0</span>件,
共花费了:<span class="highlight" id="totalPrice">0</span>元<br />
其中最贵的商品单是:<span class="highlight" id="mostExpensive">0</span>元
</p>
</body>
</html>

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

Javascript 相关文章推荐
javascript 精粹笔记
May 09 Javascript
jquery中$.post()方法的简单实例
Feb 04 Javascript
用Jquery选择器计算table中的某一列某一行的合计
Aug 13 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
JS判断页面是否出现滚动条的方法
Jul 17 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
Dec 19 Javascript
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
Jun 30 Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 26 Javascript
解决vue init webpack 下载依赖卡住不动的问题
Nov 09 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 Javascript
基于javascript实现移动端轮播图效果
Dec 21 Javascript
js实现简单图片拖拽效果
Feb 22 Javascript
jQuery实现拖拽可编辑模块功能代码
Jan 12 #Javascript
jQuery实现倒计时重新发送短信验证码功能示例
Jan 12 #Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 #Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
Jan 12 #Javascript
JS百度地图搜索悬浮窗功能
Jan 12 #Javascript
原生js实现焦点轮播图效果
Jan 12 #Javascript
详解能在多种前端框架下使用的表格控件
Jan 11 #Javascript
You might like
php利用cookie实现访问次数统计代码
2011/05/19 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP中的命名空间详细介绍
2015/07/02 PHP
PHP使用Pear发送邮件(Windows环境)
2016/01/05 PHP
Javascript 面向对象(一)(共有方法,私有方法,特权方法)
2012/05/23 Javascript
web性能优化之javascript性能调优
2012/12/28 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
在WordPress中加入Google搜索功能的简单步骤讲解
2016/01/04 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
JS框架之vue.js(深入三:组件1)
2016/09/29 Javascript
浅谈js之字面量、对象字面量的访问、关键字in的用法
2016/11/20 Javascript
JavaScript队列函数和异步执行详解
2017/06/19 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
详解mpvue scroll-view自动回弹bug解决方案
2018/10/01 Javascript
使用JS location实现搜索框历史记录功能
2019/12/23 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
简单介绍Python中的floor()方法
2015/05/15 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python环境路径配置以及命令行运行脚本
2019/04/02 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
python爬虫beautifulsoup解析html方法
2020/12/07 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
军训自我鉴定
2013/12/14 职场文书
企业员工培训感言
2014/02/26 职场文书
个人函授自我鉴定
2014/03/25 职场文书
医院志愿者活动总结
2015/05/06 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python