原生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 相关文章推荐
解决jquery .ajax 在IE下卡死问题的解决方法
Oct 26 Javascript
jquery 简短右键菜单 多浏览器兼容
Jan 01 Javascript
探讨js字符串数组拼接的性能问题
Oct 11 Javascript
JavaScript的this关键字的理解
Jun 18 Javascript
AngularJS实现一次监听多个值发生的变化
Aug 31 Javascript
Bootstrap轮播插件使用代码
Oct 11 Javascript
微信小程序入门教程
Nov 18 Javascript
jquery UI Datepicker时间控件冲突问题解决
Dec 16 Javascript
js实现用户输入的小写字母自动转大写字母的方法
Jan 21 Javascript
微信小程序使用map组件实现解析经纬度功能示例
Jan 22 Javascript
vue 实现微信浮标效果
Sep 01 Javascript
关于Vue中axios的封装实例详解
Oct 20 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自动识别字符集并完成转码详解
2013/08/02 PHP
php数据库备份还原类分享
2014/03/20 PHP
php获取字符串中各个字符出现次数的方法
2015/02/23 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例
2018/08/04 PHP
IE和Firefox下javascript的兼容写法小结
2008/12/10 Javascript
探讨JavaScript中声明全局变量三种方式的异同
2013/12/03 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
12306 刷票脚本及稳固刷票脚本(防挂)
2017/01/04 Javascript
解决vue的变量在settimeout内部效果失效的问题
2018/08/30 Javascript
Node.js一行代码实现静态文件服务器的方法步骤
2019/05/07 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python 检查文件mime类型的方法
2018/12/08 Python
python logging.info在终端没输出的解决
2020/05/12 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
python调用私有属性的方法总结
2020/07/24 Python
美国专注于健康商品的网站:eVitamins
2017/01/23 全球购物
欧洲最大的化妆品连锁公司:Douglas道格拉斯
2017/05/06 全球购物
Bealls Florida百货商店:生活服饰、家居装饰和鞋子
2018/02/23 全球购物
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
期末总结的个人自我评价
2013/11/02 职场文书
《在家里》教后反思
2014/03/01 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
环保建议书600字
2014/05/14 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
2015年财务科工作总结范文
2015/05/13 职场文书
uwsgi+nginx代理Django无法访问静态资源的解决
2021/05/10 Servers
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python