原生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 指南/入门基础
Nov 30 Javascript
在jQuery ajax中按钮button和submit的区别分析
Oct 07 Javascript
JS实现匀速运动的代码实例
Nov 29 Javascript
qq悬浮代码(兼容各个浏览器)
Jan 29 Javascript
Javascript随机标签云代码实例
Jun 21 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 Javascript
vue调用高德地图实例代码
Apr 28 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
Aug 10 Javascript
javascript实现遮罩层动态效果实例
May 14 Javascript
Node.js从字符串生成文件流的实现方法
Aug 18 Javascript
js cavans实现静态滚动弹幕
May 21 Javascript
详解webpack的文件监听实现(热更新)
Sep 11 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
PHP文件读写操作之文件写入代码
2011/01/13 PHP
PHP url 加密解密函数代码
2011/08/26 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法
2014/11/04 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
2019/10/08 PHP
二级域名转向类
2006/11/09 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
理解Javascript闭包
2013/11/01 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
微信小程序实现天气预报功能
2018/07/18 Javascript
使用RN Animated做一个“添加购物车”动画的方法
2018/09/12 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
[54:33]2018DOTA2亚洲邀请赛小组赛 A组加赛 Liquid vs Optic
2018/04/03 DOTA
python分割文件的常用方法
2014/11/01 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
Python下简易的单例模式详解
2019/04/08 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
python实现opencv+scoket网络实时图传
2020/03/20 Python
解析Tensorflow之MNIST的使用
2020/06/30 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
高一家长会邀请函
2014/01/12 职场文书
关于人生的感言
2014/01/17 职场文书
小学毕业感言300字
2014/02/19 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
社区领导班子四风问题原因分析及整改措施
2014/09/28 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python