[前端] 原生JavaScript实现购物车效果

2066 0
王子 2022-10-21 15:53:25 | 显示全部楼层 |阅读模式
本文实例为大家分享了JavaScript实现购物车效果的具体代码,供大家参考,具体内容如下
HTML:
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <meta charset="utf-8">
  5.   <title></title>
  6.   <style type="text/css">
  7.    table {
  8.     border: 1px solid #e9e9e9;
  9.     border-collapse: collapse;
  10.     border-spacing: 0;
  11.    }
  12.    td {
  13.     padding: 8px 16px;
  14.     border: 1px solid #e9e9e9;
  15.     text-align: left;
  16.    }
  17.    td img {
  18.     width: 50px;
  19.     height: 50px;
  20.    }
  21.    th {
  22.     background-color: #f7f7f7;
  23.     color: #5c6b77;
  24.     font-weight: 600;
  25.    }
  26.   </style>
  27. </head>
  28. <body>
  29.   图书类型:<select id="xlxx" onchange="tslx()">
  30.    <option value="全部">全部</option>
  31.    <option value="科幻">科幻</option>
  32.    <option value="小说">小说</option>
  33.    <option value="文学">文学</option>
  34.    <option value="悬疑">悬疑</option>
  35.   </select>
  36.   <table border="0">
  37.    <tr>
  38.     <th><button type="button" style="border: 0;background-color: #f7f7f7;" id="qbxz"
  39.       >全选</button></th>
  40.     <th>序号</th>
  41.     <th>商品名<th>
  42.     <th>书籍名</th>
  43.     <th>分类</th>
  44.     <th>价格</th>
  45.     <th>购买数量</th>
  46.     <th>操作</th>
  47.    </tr>
  48.    <tr name="wx">
  49.     <td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td>
  50.     <td>1</td>
  51.     <td><img  onmouseout="tpmin()" src="../img/20180520083915_sMx82.jpeg"></td>
  52.     <td>活着</td>
  53.     <td>文学</td>
  54.     <td><label name="jg">25</label></td>
  55.     <td>
  56.      <button >+</button>
  57.      <label id="num1" name="num">1</label>
  58.      <button >-</button>
  59.     </td>
  60.     <td><button >移除</button></td>
  61.    </tr>
  62.    <tr name="kh">
  63.     <td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td>
  64.     <td>2</td>
  65.     <td><img  onmouseout="tpmin()" src="../img/20180520083916_8ntMr.jpeg"></td>
  66.     <td>活着2</td>
  67.     <td>科幻</td>
  68.     <td><label name="jg">30</label></td>
  69.     <td>
  70.      <button >+</button>
  71.      <label id="num2" name="num">1</label>
  72.      <button >-</button>
  73.     </td>
  74.      <td><button >移除</button></td>
  75.    </tr>
  76.    <tr name="xs">
  77.     <td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td>
  78.     <td>3</td>
  79.     <td><img  onmouseout="tpmin()" src="../img/20191227173047_zrXxQ.jpeg"></td>
  80.     <td>活着3</td>
  81.     <td>小说</td>
  82.     <td><label name="jg">35</label></td>
  83.     <td>
  84.      <button >+</button>
  85.      <label id="num3" name="num">1</label>
  86.      <button >-</button>
  87.     </td>
  88.      <td><button >移除</button></td>
  89.    </tr>
  90.    <tr name="xy">
  91.     <td><input type="checkbox" name="cb" onchange="zhjs()" id="" value="" class="qx" /></td>
  92.     <td>4</td>
  93.     <td><img  onmouseout="tpmin()" src="../img/20191227173048_eGeBA.jpeg"></td>
  94.     <td>活着4</td>
  95.     <td>悬疑</td>
  96.     <td><label name="jg">40</label></td>
  97.     <td>
  98.      <button >+</button>
  99.      <label id="num4" name="num">1</label>
  100.      <button >-</button>
  101.     </td>
  102.      <td><button >移除</button></td>
  103.    </tr>
  104.   </table>
  105.   <h1 id="nr" style="display: none;">购物车为空!</h1>
  106.   总金额:<label id="zh" style="color: red;">0</label>¥
  107.   <img src="" style="width: 150px;" id="img">
  108. </body>
  109. <script type="text/javascript">
  110. </script>
  111. <script src="../js/gwc.js" type="text/javascript" charset="utf-8"></script>
  112. </html>
复制代码
JavaScript:
  1. /*
  2. 1.图片悬浮时的放大
  3. 2.全选
  4. 3.分类
  5. 4.数值的加减
  6. 5.总和的实现
  7. 6.删除功能
  8. */
  9. // 1.图片悬浮时的放大
  10. // 图片移入放大
  11. function tpmax(lj) {
  12. //移入 将获取到的图片路径加载到下方显示图片路径实现移入显示
  13. document.getElementById("img").src = lj
  14. }
  15. // 图片移出隐藏
  16. function tpmin() {
  17. //移出 将空的图片路径加载到下方显示图片路径实现移出不显示
  18. document.getElementById("img").src = "";
  19. }
  20. // 2.全选
  21. function quanxuan() {
  22. var qxaj = document.getElementsByClassName("qx");
  23. // 遍历判断复选框的状态
  24. for (var i = 0; i < qxaj.length; i++) {
  25.   if (qxaj[i].checked == true) {
  26.    for (var i = 0; i < qxaj.length; i++) {
  27.     qxaj[i].checked = false;
  28.    }
  29.   } else {
  30.    for (var i = 0; i < qxaj.length; i++) {
  31.     qxaj[i].checked = true;
  32.    }
  33.   }
  34. }
  35. zhjs();
  36. }
  37. // 3.分类
  38. /*
  39. 1.只显示分类的:将不属于的分类隐藏,直显示匹配的行
  40. 2.显示与隐藏两个方法
  41. */
  42. function tslx() {
  43. var xlxx = document.getElementById("xlxx").value;
  44. var kh = document.getElementsByName("kh");
  45. var xs = document.getElementsByName("xs");
  46. var wx = document.getElementsByName("wx");
  47. var xy = document.getElementsByName("xy");
  48. if (xlxx == "全部") {
  49.   xianshi(kh);
  50.   xianshi(xs);
  51.   xianshi(wx);
  52.   xianshi(xy);
  53. }
  54. if (xlxx == "科幻") {
  55.   xianshi(kh);
  56.   yincang(xs);
  57.   yincang(wx);
  58.   yincang(xy);
  59. }
  60. if (xlxx == "文学") {
  61.   yincang(kh);
  62.   yincang(xs);
  63.   xianshi(wx);
  64.   yincang(xy);
  65. }
  66. if (xlxx == "小说") {
  67.   yincang(kh);
  68.   xianshi(xs);
  69.   yincang(wx);
  70.   yincang(xy);
  71. }
  72. if (xlxx == "悬疑") {
  73.   yincang(kh);
  74.   yincang(xs);
  75.   yincang(wx);
  76.   xianshi(xy);
  77. }
  78. }
  79. // 显示
  80. function xianshi(xlxx) {
  81. // 遍历寻找匹配的值
  82. for (var i = 0; i < xlxx.length; i++) {
  83.   xlxx[i].style.visibility = "visible";
  84. }
  85. }
  86. // 隐藏
  87. function yincang(xlxx) {
  88. for (var i = 0; i < xlxx.length; i++) {
  89.   xlxx[i].style.visibility = "collapse";
  90. }
  91. }
  92. // 4.数值的加减
  93. function jian(numid) {
  94. var num = document.getElementById(numid).innerHTML;
  95. var ljnum = parseInt(num) - 1;
  96. if (ljnum > 0) {
  97.   document.getElementById(numid).innerHTML = ljnum;
  98. }
  99. zhjs();
  100. }
  101. function jia(numid) {
  102. // 得到原始值
  103. var num = document.getElementById(numid).innerHTML;
  104. // 得到累加值
  105. var ljnum = parseInt(num) + 1;
  106. // 赋值
  107. document.getElementById(numid).innerHTML = ljnum;
  108. zhjs();
  109. }
  110. //5.总和计算
  111. function zhjs() {
  112. var jg = document.getElementsByName("jg");
  113. var sl = document.getElementsByName("num");
  114. var cb = document.getElementsByName("cb");
  115. var sum = 0;
  116. for (var i = 0; i < cb.length; i++) {
  117.   if (cb[i].checked == true) {
  118.    sum += parseInt(jg[i].innerHTML) * parseInt(sl[i].innerHTML);
  119.   }
  120. }
  121. document.getElementById("zh").innerHTML = sum;
  122. }
  123. // 6.删除
  124. // 遍历全部tr
  125. var s = 0;
  126. var qbtr = document.getElementsByTagName("tr");
  127. for (var i = 0; i < qbtr.length; i++) {
  128. s++;
  129. }
  130. function deletet(index) {
  131. // tr()
  132. var c = document.getElementsByName("cb");
  133. c[index - 1].checked = false;
  134. var h = document.getElementsByTagName("tr");
  135. h[index].style.display = "none";
  136. s--;
  137. if (s == 1) {
  138.   document.getElementById("nr").style.display = "block";
  139.   document.getElementById("cartb").style.display = "none";
  140.   document.getElementById("stype").style.display = "none";
  141. }
  142. zhjs();
  143. }
复制代码
效果:
全选:


分类:




删除:


添加数量


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持中国红客联盟。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2025 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行