原生js實(shí)現(xiàn)淘寶購物車功能
js淘寶購物車功能描述:
1、點(diǎn)擊“+”,單個商品數(shù)量加1,總數(shù)量加1;單個商品價格添加,總價也添加。
2、點(diǎn)擊“-”,單個商品數(shù)量減1,總數(shù)量減1;單個商品價格減少,總價也減少。
當(dāng)該商品數(shù)量為0時,點(diǎn)擊依然為0;
3、顯示出總價,總數(shù)量和其中最貴的那個商品的價格。
瞄一眼效果圖:

廢話不多說,LU代碼
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標(biāo)題文檔</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) {
// 如果該商品數(shù)量為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>件,
共花費(fèi)了:<span class="highlight" id="totalPrice">0</span>元<br />
其中最貴的商品單是:<span class="highlight" id="mostExpensive">0</span>元
</p>
</body>
</html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Javascript操縱Cookie實(shí)現(xiàn)購物車程序
- Javascript操縱Cookie實(shí)現(xiàn)購物車程序
- js+cookies實(shí)現(xiàn)懸浮購物車的方法
- jQuery基于json與cookie實(shí)現(xiàn)購物車的方法
- jQuery使用cookie與json簡單實(shí)現(xiàn)購物車功能
- 原生JS 購物車及購物頁面的cookie使用方法
- 簡單的前端js+ajax 購物車框架(入門篇)
- JavaScript編寫一個簡易購物車功能
- 利用Angularjs和bootstrap實(shí)現(xiàn)購物車功能
- js實(shí)現(xiàn)商品拋物線加入購物車特效
- 原生js+cookie實(shí)現(xiàn)購物車功能的方法分析
相關(guān)文章
微信小程序swiper使用網(wǎng)絡(luò)圖片不顯示問題解決
這篇文章主要介紹了微信小程序swiper使用網(wǎng)絡(luò)圖片不顯示問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
JavaScript阻止事件冒泡和默認(rèn)行為的方法舉例
JavaScript事件的默認(rèn)行為指瀏覽器自動執(zhí)行的操作,如鏈接跳轉(zhuǎn)或表單提交,阻止這些行為可以使用event.preventDefault()、return?false或event.returnValue屬性,event.stopPropagation()用于阻止事件傳播,不直接阻止默認(rèn)行為,需要的朋友可以參考下2024-10-10
Nuxt默認(rèn)模板、默認(rèn)布局和自定義錯誤頁面的實(shí)現(xiàn)
這篇文章主要介紹了Nuxt默認(rèn)模板、默認(rèn)布局和自定義錯誤頁面的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
javascript設(shè)計模式 – 中介者模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計模式 – 中介者模式,結(jié)合實(shí)例形式分析了javascript中介者模式基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04
JavaScript Cookie 直接瀏覽網(wǎng)站分網(wǎng)址
2009-12-12

