原生js實(shí)現(xiàn)淘寶購(gòu)物車(chē)功能
js淘寶購(gòu)物車(chē)功能描述:
1、點(diǎn)擊“+”,單個(gè)商品數(shù)量加1,總數(shù)量加1;單個(gè)商品價(jià)格添加,總價(jià)也添加。
2、點(diǎn)擊“-”,單個(gè)商品數(shù)量減1,總數(shù)量減1;單個(gè)商品價(jià)格減少,總價(jià)也減少。
當(dāng)該商品數(shù)量為0時(shí),點(diǎn)擊依然為0;
3、顯示出總價(jià),總數(shù)量和其中最貴的那個(gè)商品的價(jià)格。
瞄一眼效果圖:
廢話(huà)不多說(shuō),LU代碼
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無(wú)標(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,,那么就得把它的價(jià)格從價(jià)格表中清除 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="+" /> 單價(jià):<em>12.5元</em> 小計(jì):<span class="highlight">0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 單價(jià):<em>10.5元</em> 小計(jì):<span class="highlight">0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 單價(jià):<em>8.5元</em> 小計(jì):<span class="highlight">0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 單價(jià):<em>8元</em> 小計(jì):<span class="highlight">0元</span> </li> <li> <input type="button" value="-" /> <strong>0</strong> <input type="button" value="+" /> 單價(jià):<em>14.5元</em> 小計(jì):<span class="highlight">0元</span> </li> </ul> <p> 商品合計(jì)共:<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>
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Javascript操縱Cookie實(shí)現(xiàn)購(gòu)物車(chē)程序
- Javascript操縱Cookie實(shí)現(xiàn)購(gòu)物車(chē)程序
- js+cookies實(shí)現(xiàn)懸浮購(gòu)物車(chē)的方法
- jQuery基于json與cookie實(shí)現(xiàn)購(gòu)物車(chē)的方法
- jQuery使用cookie與json簡(jiǎn)單實(shí)現(xiàn)購(gòu)物車(chē)功能
- 原生JS 購(gòu)物車(chē)及購(gòu)物頁(yè)面的cookie使用方法
- 簡(jiǎn)單的前端js+ajax 購(gòu)物車(chē)框架(入門(mén)篇)
- JavaScript編寫(xiě)一個(gè)簡(jiǎn)易購(gòu)物車(chē)功能
- 利用Angularjs和bootstrap實(shí)現(xiàn)購(gòu)物車(chē)功能
- js實(shí)現(xiàn)商品拋物線(xiàn)加入購(gòu)物車(chē)特效
- 原生js+cookie實(shí)現(xiàn)購(gòu)物車(chē)功能的方法分析
相關(guān)文章
原生javascript+css3編寫(xiě)的3D魔方動(dòng)畫(huà)旋扭特效
這篇文章主要介紹了原生javascript+css3編寫(xiě)的3D魔方動(dòng)畫(huà)旋扭特效的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-03-03Javascript 實(shí)現(xiàn) Excel 導(dǎo)入生成圖表功能
這篇文章主要介紹了Javascript 實(shí)現(xiàn) Excel 導(dǎo)入生成圖表功能,本文通過(guò)實(shí)例代碼講解給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10JavaScript設(shè)計(jì)模式之模板方法模式原理與用法示例
這篇文章主要介紹了JavaScript設(shè)計(jì)模式之模板方法模式原理與用法,結(jié)合實(shí)例形式分析了JavaScript模板方法模式的概念、組成、定義、使用等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-08-08js格式化貨幣數(shù)據(jù)實(shí)現(xiàn)代碼
貨幣數(shù)據(jù)想要一某種形式在頁(yè)面中顯示的話(huà),首先是必須要格式化的,下面為大家介紹下具體的格式化代碼,感興趣的朋友可以參考下2013-09-09JavaScript 實(shí)現(xiàn)鍋拍灰太狼小游戲
這篇文章主要介紹了JavaScript 實(shí)現(xiàn)鍋拍灰太狼小游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09JS promise解決異步問(wèn)題過(guò)程詳解
Promise是異步編程的一種解決方案,比傳統(tǒng)的解決方案——回調(diào)函數(shù)和事件——更合理和更強(qiáng)大。簡(jiǎn)單說(shuō)就是一個(gè)容器,里面保存著某個(gè)未來(lái)才會(huì)結(jié)束的事件(通常是一個(gè)異步操作)的結(jié)果。從語(yǔ)法上說(shuō),Promise是一個(gè)對(duì)象,從它可以獲取異步操作的消息2023-04-04js實(shí)現(xiàn)數(shù)組轉(zhuǎn)換成json
本文給大家分享的是使用javascript實(shí)現(xiàn)的數(shù)組轉(zhuǎn)換json的代碼,非常簡(jiǎn)單實(shí)用,相當(dāng)于JSON.stringify(array);,有需要的小伙伴可以參考下。2015-06-06淺析如何在Bash中調(diào)用Node運(yùn)行JS文件進(jìn)行數(shù)據(jù)通信
這篇文章主要來(lái)和大家探討在 Bash 中調(diào)用 Node 運(yùn)行 JS 文件時(shí)如何進(jìn)行數(shù)據(jù)通信,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03