原生JavaScript實(shí)現(xiàn)購物車效果
本文實(shí)例為大家分享了JavaScript實(shí)現(xiàn)購物車效果的具體代碼,供大家參考,具體內(nèi)容如下
HTML:
<!DOCTYPE html> <html> ?? ?<head> ?? ??? ?<meta charset="utf-8"> ?? ??? ?<title></title> ?? ??? ?<style type="text/css"> ?? ??? ??? ?table { ?? ??? ??? ??? ?border: 1px solid #e9e9e9; ?? ??? ??? ??? ?border-collapse: collapse; ?? ??? ??? ??? ?border-spacing: 0; ?? ??? ??? ?} ? ?? ??? ??? ?td { ?? ??? ??? ??? ?padding: 8px 16px; ?? ??? ??? ??? ?border: 1px solid #e9e9e9; ?? ??? ??? ??? ?text-align: left; ?? ??? ??? ?} ? ?? ??? ??? ?td img { ?? ??? ??? ??? ?width: 50px; ?? ??? ??? ??? ?height: 50px; ?? ??? ??? ?} ? ?? ??? ??? ?th { ?? ??? ??? ??? ?background-color: #f7f7f7; ?? ??? ??? ??? ?color: #5c6b77; ?? ??? ??? ??? ?font-weight: 600; ?? ??? ??? ?} ?? ??? ?</style> ?? ?</head> ?? ?<body> ?? ??? ?圖書類型:<select id="xlxx" onchange="tslx()"> ?? ??? ??? ?<option value="全部">全部</option> ?? ??? ??? ?<option value="科幻">科幻</option> ?? ??? ??? ?<option value="小說">小說</option> ?? ??? ??? ?<option value="文學(xué)">文學(xué)</option> ?? ??? ??? ?<option value="懸疑">懸疑</option> ?? ??? ?</select> ?? ??? ?<table border="0"> ?? ??? ??? ?<tr> ?? ??? ??? ??? ?<th><button type="button" style="border: 0;background-color: #f7f7f7;" id="qbxz" ?? ??? ??? ??? ??? ??? ?onclick="quanxuan ()">全選</button></th> ?? ??? ??? ??? ?<th>序號</th> ?? ??? ??? ??? ?<th>商品名</th> ?? ??? ??? ??? ?<th>書籍名</th> ?? ??? ??? ??? ?<th>分類</th> ?? ??? ??? ??? ?<th>價(jià)格</th> ?? ??? ??? ??? ?<th>購買數(shù)量</th> ?? ??? ??? ??? ?<th>操作</th> ?? ??? ??? ?</tr> ?? ??? ??? ?<tr name="wx"> ?? ??? ??? ??? ?<td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td> ?? ??? ??? ??? ?<td>1</td> ?? ??? ??? ??? ?<td><img onmouseover="tpmax(this.src)" onmouseout="tpmin()" src="../img/20180520083915_sMx82.jpeg"></td> ?? ??? ??? ??? ?<td>活著</td> ?? ??? ??? ??? ?<td>文學(xué)</td> ?? ??? ??? ??? ?<td><label name="jg">25</label></td> ?? ??? ??? ??? ?<td> ?? ??? ??? ??? ??? ?<button onclick="jia('num1')">+</button> ?? ??? ??? ??? ??? ?<label id="num1" name="num">1</label> ?? ??? ??? ??? ??? ?<button onclick="jian('num1')">-</button> ?? ??? ??? ??? ?</td> ?? ??? ??? ??? ?<td><button onclick="deletet(1)">移除</button></td> ?? ??? ??? ?</tr> ?? ??? ??? ?<tr name="kh"> ?? ??? ??? ??? ?<td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td> ?? ??? ??? ??? ?<td>2</td> ?? ??? ??? ??? ?<td><img onmouseover="tpmax(this.src)" onmouseout="tpmin()" src="../img/20180520083916_8ntMr.jpeg"></td> ?? ??? ??? ??? ?<td>活著2</td> ?? ??? ??? ??? ?<td>科幻</td> ?? ??? ??? ??? ?<td><label name="jg">30</label></td> ?? ??? ??? ??? ?<td> ?? ??? ??? ??? ??? ?<button onclick="jia('num2')">+</button> ?? ??? ??? ??? ??? ?<label id="num2" name="num">1</label> ?? ??? ??? ??? ??? ?<button onclick="jian('num2')">-</button> ?? ??? ??? ??? ?</td> ?? ??? ??? ??? ??? ?<td><button onclick="deletet(2)">移除</button></td> ?? ??? ??? ?</tr> ?? ??? ??? ?<tr name="xs"> ?? ??? ??? ??? ?<td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td> ?? ??? ??? ??? ?<td>3</td> ?? ??? ??? ??? ?<td><img onmouseover="tpmax(this.src)" onmouseout="tpmin()" src="../img/20191227173047_zrXxQ.jpeg"></td> ?? ??? ??? ??? ?<td>活著3</td> ?? ??? ??? ??? ?<td>小說</td> ?? ??? ??? ??? ?<td><label name="jg">35</label></td> ?? ??? ??? ??? ?<td> ?? ??? ??? ??? ??? ?<button onclick="jia('num3')">+</button> ?? ??? ??? ??? ??? ?<label id="num3" name="num">1</label> ?? ??? ??? ??? ??? ?<button onclick="jian('num3')">-</button> ?? ??? ??? ??? ?</td> ?? ??? ??? ??? ??? ?<td><button onclick="deletet(3)">移除</button></td> ?? ??? ??? ?</tr> ?? ??? ??? ?<tr name="xy"> ?? ??? ??? ??? ?<td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td> ?? ??? ??? ??? ?<td>4</td> ?? ??? ??? ??? ?<td><img onmouseover="tpmax(this.src)" onmouseout="tpmin()" src="../img/20191227173048_eGeBA.jpeg"></td> ?? ??? ??? ??? ?<td>活著4</td> ?? ??? ??? ??? ?<td>懸疑</td> ?? ??? ??? ??? ?<td><label name="jg">40</label></td> ?? ??? ??? ??? ?<td> ?? ??? ??? ??? ??? ?<button onclick="jia('num4')">+</button> ?? ??? ??? ??? ??? ?<label id="num4" name="num">1</label> ?? ??? ??? ??? ??? ?<button onclick="jian('num4')">-</button> ?? ??? ??? ??? ?</td> ?? ??? ??? ??? ??? ?<td><button onclick="deletet(4)">移除</button></td> ?? ??? ??? ?</tr> ? ?? ??? ?</table> ?? ??? ?<h1 id="nr" style="display: none;">購物車為空!</h1> ? ?? ??? ?總金額:<label id="zh" style="color: red;">0</label>¥ ? ?? ??? ?<img src="" style="width: 150px;" id="img"> ? ?? ?</body> ?? ? ?? ?<script type="text/javascript"> ?? ??? ? ?? ?</script> ?? ?<script src="../js/gwc.js" type="text/javascript" charset="utf-8"></script> </html>
JavaScript:
/* 1.圖片懸浮時(shí)的放大 2.全選 3.分類 4.數(shù)值的加減 5.總和的實(shí)現(xiàn) 6.刪除功能 */ ? // 1.圖片懸浮時(shí)的放大 ? // 圖片移入放大 function tpmax(lj) { ?? ?//移入 將獲取到的圖片路徑加載到下方顯示圖片路徑實(shí)現(xiàn)移入顯示 ?? ?document.getElementById("img").src = lj } // 圖片移出隱藏 function tpmin() { ?? ?//移出 將空的圖片路徑加載到下方顯示圖片路徑實(shí)現(xiàn)移出不顯示 ?? ?document.getElementById("img").src = ""; } ? // 2.全選 function quanxuan() { ?? ?var qxaj = document.getElementsByClassName("qx"); ?? ?// 遍歷判斷復(fù)選框的狀態(tài) ?? ?for (var i = 0; i < qxaj.length; i++) { ?? ??? ?if (qxaj[i].checked == true) { ?? ??? ??? ?for (var i = 0; i < qxaj.length; i++) { ?? ??? ??? ??? ?qxaj[i].checked = false; ?? ??? ??? ?} ? ?? ??? ?} else { ?? ??? ??? ?for (var i = 0; i < qxaj.length; i++) { ?? ??? ??? ??? ?qxaj[i].checked = true; ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?zhjs(); } ? // 3.分類 /* 1.只顯示分類的:將不屬于的分類隱藏,直顯示匹配的行 2.顯示與隱藏兩個(gè)方法 */ function tslx() { ?? ?var xlxx = document.getElementById("xlxx").value; ?? ?var kh = document.getElementsByName("kh"); ?? ?var xs = document.getElementsByName("xs"); ?? ?var wx = document.getElementsByName("wx"); ?? ?var xy = document.getElementsByName("xy"); ?? ?if (xlxx == "全部") { ?? ??? ?xianshi(kh); ?? ??? ?xianshi(xs); ?? ??? ?xianshi(wx); ?? ??? ?xianshi(xy); ?? ?} ?? ?if (xlxx == "科幻") { ?? ??? ?xianshi(kh); ?? ??? ?yincang(xs); ?? ??? ?yincang(wx); ?? ??? ?yincang(xy); ?? ?} ?? ?if (xlxx == "文學(xué)") { ?? ??? ?yincang(kh); ?? ??? ?yincang(xs); ?? ??? ?xianshi(wx); ?? ??? ?yincang(xy); ?? ?} ?? ?if (xlxx == "小說") { ?? ??? ?yincang(kh); ?? ??? ?xianshi(xs); ?? ??? ?yincang(wx); ?? ??? ?yincang(xy); ?? ?} ?? ?if (xlxx == "懸疑") { ?? ??? ?yincang(kh); ?? ??? ?yincang(xs); ?? ??? ?yincang(wx); ?? ??? ?xianshi(xy); ?? ?} } ? // 顯示 function xianshi(xlxx) { ?? ?// 遍歷尋找匹配的值 ?? ?for (var i = 0; i < xlxx.length; i++) { ?? ??? ?xlxx[i].style.visibility = "visible"; ?? ?} } ? // 隱藏 function yincang(xlxx) { ?? ?for (var i = 0; i < xlxx.length; i++) { ?? ??? ?xlxx[i].style.visibility = "collapse"; ?? ?} } ? ? // 4.數(shù)值的加減 function jian(numid) { ?? ?var num = document.getElementById(numid).innerHTML; ?? ?var ljnum = parseInt(num) - 1; ?? ?if (ljnum > 0) { ?? ??? ?document.getElementById(numid).innerHTML = ljnum; ?? ?} ?? ?zhjs(); } ? function jia(numid) { ?? ?// 得到原始值 ?? ?var num = document.getElementById(numid).innerHTML; ?? ?// 得到累加值 ?? ?var ljnum = parseInt(num) + 1; ?? ?// 賦值 ?? ?document.getElementById(numid).innerHTML = ljnum; ?? ?zhjs(); } ? ? //5.總和計(jì)算 function zhjs() { ?? ?var jg = document.getElementsByName("jg"); ?? ?var sl = document.getElementsByName("num"); ?? ?var cb = document.getElementsByName("cb"); ?? ?var sum = 0; ?? ?for (var i = 0; i < cb.length; i++) { ?? ??? ?if (cb[i].checked == true) { ?? ??? ??? ?sum += parseInt(jg[i].innerHTML) * parseInt(sl[i].innerHTML); ?? ??? ?} ?? ?} ? ?? ?document.getElementById("zh").innerHTML = sum; } ? ? // 6.刪除 ? // 遍歷全部tr var s = 0; var qbtr = document.getElementsByTagName("tr"); for (var i = 0; i < qbtr.length; i++) { ?? ?s++; } function deletet(index) { ?? ?// tr() ?? ?var c = document.getElementsByName("cb"); ?? ?c[index - 1].checked = false; ?? ?var h = document.getElementsByTagName("tr"); ?? ?h[index].style.display = "none"; ?? ?s--; ?? ?if (s == 1) { ?? ??? ?document.getElementById("nr").style.display = "block"; ?? ??? ?document.getElementById("cartb").style.display = "none"; ?? ??? ?document.getElementById("stype").style.display = "none"; ?? ?} ?? ?zhjs(); ? ? }
效果:
全選:
分類:
刪除:
添加數(shù)量
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vuejs手把手教你寫一個(gè)完整的購物車實(shí)例代碼
- js購物車實(shí)現(xiàn)思路及代碼(個(gè)人感覺不錯(cuò))
- JavaScript編寫一個(gè)簡易購物車功能
- Javascript實(shí)現(xiàn)購物車功能的詳細(xì)代碼
- js實(shí)現(xiàn)簡單的購物車有圖有代碼
- Jsp+Servlet實(shí)現(xiàn)購物車功能
- 原生js模擬淘寶購物車項(xiàng)目實(shí)戰(zhàn)
- Javascript操縱Cookie實(shí)現(xiàn)購物車程序
- 簡單的前端js+ajax 購物車框架(入門篇)
- js實(shí)現(xiàn)購物車功能
相關(guān)文章
javascript一個(gè)無懈可擊的實(shí)例化XMLHttpRequest的方法
由于IE新舊版本以及與其他瀏覽器在ajax技術(shù)上的不同,往往需要對不同的瀏覽器做不同的處理,除了笨拙的瀏覽器嗅探技術(shù),大約也就是對象檢測技術(shù)可用了。2010-10-10layui數(shù)據(jù)表格 table.render 報(bào)錯(cuò)的解決方法
今天小編就為大家分享一篇layui數(shù)據(jù)表格 table.render 報(bào)錯(cuò)的解決方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09JavaScript+CSS無限極分類效果完整實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript+CSS無限極分類效果完整實(shí)現(xiàn)方法,涉及JavaScript針對頁面元素節(jié)點(diǎn)遍歷與動(dòng)態(tài)操作技巧,需要的朋友可以參考下2015-12-12javascript獲取xml節(jié)點(diǎn)的最大值(實(shí)現(xiàn)代碼)
這篇文章主要介紹了利用javascript獲取xml節(jié)點(diǎn)的最大值。需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12