如何用JS写个简单的购物车,方法是什么
Admin 2022-08-10 群英技术资讯 277 次浏览
本文实例为大家分享了JavaScript实现购物车效果的具体代码,供大家参考,具体内容如下
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="文学">文学</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>价格</th> <th>购买数量</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>文学</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.图片悬浮时的放大 2.全选 3.分类 4.数值的加减 5.总和的实现 6.删除功能 */ // 1.图片悬浮时的放大 // 图片移入放大 function tpmax(lj) { //移入 将获取到的图片路径加载到下方显示图片路径实现移入显示 document.getElementById("img").src = lj } // 图片移出隐藏 function tpmin() { //移出 将空的图片路径加载到下方显示图片路径实现移出不显示 document.getElementById("img").src = ""; } // 2.全选 function quanxuan() { var qxaj = document.getElementsByClassName("qx"); // 遍历判断复选框的状态 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.显示与隐藏两个方法 */ 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 == "文学") { 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.数值的加减 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.总和计算 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(); }
效果:
全选:
分类:
删除:
添加数量
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
移动端页面适配,rem和vw适配方案,本文主要介绍了vue项目中使用rem替换px的实现示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
Vue中key的作用,key的特殊attribute主要用在Vue的虚拟DOM算法,在新旧Nodes对比时辨识VNodes。如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能的尝试就
JavaScript如何改变this指向?下面本篇文章给大家介绍一下JS改变this指向的三种方法,希望对大家有所帮助!
本篇文章给大家带来了关于javascript的相关知识,主要介绍了JavaScript数组实例的9个方法,文章围绕主题展开详细的内容介绍没具有一定的参考价值,需要的朋友可以参考一下。
这篇文章主要为大家介绍了JavaScript之instanceof方法手写示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008