原生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 相关文章推荐
Add Formatted Text to a Word Document
Jun 15 Javascript
javascript 点击整页变灰的效果(可做退出效果)。
Jan 09 Javascript
JS URL传中文参数引发的乱码问题
Sep 02 Javascript
js获得鼠标的坐标值的方法
Mar 13 Javascript
jquery获取一组checkbox的值(实例代码)
Nov 04 Javascript
js 判断文件类型并控制表单提交示例代码
Nov 14 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
AngularJS入门之动画
Jul 27 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
Angular.JS中的指令引用template与指令当做属性详解
Mar 30 Javascript
详解webpack模块化管理和打包工具
Apr 21 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
Sep 24 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入门的学习方法
2007/01/02 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
JS记录用户登录次数实现代码
2014/01/15 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
jQuery简单验证上传文件大小及类型的方法
2016/06/02 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
在vue项目实现一个ctrl+f的搜索功能
2020/02/28 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
Python兔子毒药问题实例分析
2015/03/05 Python
python文件操作相关知识点总结整理
2016/02/22 Python
python中OrderedDict的使用方法详解
2017/05/05 Python
Python虚拟环境项目实例
2017/11/20 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
Django REST framwork的权限验证实例
2020/04/02 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
python matplotlib库的基本使用
2020/09/23 Python
html5-websocket基于远程方法调用的数据交互实现
2012/12/04 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
建筑装饰学院室内设计专业个人自我评价
2013/12/07 职场文书
治超工作实施方案
2014/05/04 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
pytorch 权重weight 与 梯度grad 可视化操作
2021/06/05 Python
TV动画《间谍过家家》公开PV
2022/03/20 日漫
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
Win11快速关闭所有广告推荐
2022/04/19 数码科技