原生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 相关文章推荐
wordpress之js库集合研究介绍
Aug 17 Javascript
jQuery技巧大放送 学习jquery的朋友可以看下
Oct 14 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
jQuery图片预加载 等比缩放实现代码
Oct 04 Javascript
javaScript对文字按照拼音排序实现代码
Dec 27 Javascript
原生js封装的一些jquery方法(详解)
Sep 20 Javascript
各种选择框jQuery的选中方法(实例讲解)
Jun 27 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
angularjs手动识别字符串中的换行符方法
Oct 02 Javascript
小试小程序云开发(小结)
Jun 06 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
Vue实现兄弟组件间的联动效果
Jan 21 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
php 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
php程序内部post数据的方法
2015/03/31 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
S2SH整合JQuery+Ajax实现登录验证功能实现代码
2013/01/30 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
jquery实现二级导航下拉菜单效果
2015/12/18 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
javascript设计模式之Adapter模式【适配器模式】实现方法示例
2017/01/13 Javascript
从零学习node.js之模块规范(一)
2017/02/21 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
基于Vant UI框架实现时间段选择器
2020/12/24 Javascript
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python 处理数据的实例详解
2017/08/10 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
Python接收手机短信的代码整理
2020/08/02 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
比利时的在线灯具店:Lampen24.be
2019/07/01 全球购物
Vrbo西班牙:预订您的度假公寓(公寓、乡村房屋…)
2020/04/27 全球购物
.net面试题
2016/09/17 面试题
体育专业自荐书
2014/05/29 职场文书
2015年上半年党建工作总结
2015/03/30 职场文书
一文弄懂MySQL索引创建原则
2022/02/28 MySQL