亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索
博主信息
博文 46
粉絲 0
評論 0
訪問量 46554
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
購物車實例演示
上草一方
原創(chuàng)
574人瀏覽過

代碼:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>購物車-2</title>
  8. <link rel="stylesheet" href="css/demo3.css">
  9. </head>
  10. <body>
  11. <div class="box">
  12. <!-- 全選框 -->
  13. <div class="selectAll">
  14. <input type="checkbox" class="check-all" name="check-all" onchange="checkAll()" checked>
  15. <label for="check-all">全選</label>
  16. </div>
  17. <!-- 商品列表 -->
  18. <ul class="list">
  19. <li>
  20. <span>選擇</span>
  21. <span>品名</span>
  22. <span>數(shù)量</span>
  23. <span>單價</span>
  24. <span>金額</span>
  25. </li>
  26. <li>
  27. <input type="checkbox" onchange="checkItems()" checked>
  28. <span class="content">吹風機</span>
  29. <input type="number" value="1" min="1" class="num">
  30. <span class="price">100</span>
  31. <span class="amount">0</span>
  32. </li>
  33. <li>
  34. <input type="checkbox" onchange="checkItems()" checked>
  35. <span class="content">電腦</span>
  36. <input type="number" value="2" min="1" class="num">
  37. <span class="price">2000</span>
  38. <span class="amount">0</span>
  39. </li>
  40. <li>
  41. <input type="checkbox" onchange="checkItems()" checked>
  42. <span class="content">相機</span>
  43. <input type="number" value="3" min="1" class="num">
  44. <span class="price">1500</span>
  45. <span class="amount">0</span>
  46. </li>
  47. <li>
  48. <span>總計:</span>
  49. <span class="total-num">0</span>
  50. <span class="total-amount">0</span>
  51. </li>
  52. </ul>
  53. <button class="account">結(jié)算</button>
  54. </div>
  55. <script>
  56. //全選
  57. function checkAll() {
  58. let status=event.target.checked;
  59. console.log(status);
  60. //子商品狀態(tài)
  61. document
  62. .querySelectorAll(".list li input[type='checkbox']")
  63. .forEach((item)=>(item.checked=status));
  64. autoCalculate();
  65. }
  66. function checkItems() {
  67. //全部商品
  68. let items = document.querySelectorAll(".list li input[type='checkbox']");
  69. //判斷狀態(tài)
  70. let status=[...items].every((item)=>item.checked===true);
  71. console.log(status);
  72. document.querySelector('.check-all').checked=status;
  73. autoCalculate();
  74. }
  75. const nums=document.querySelectorAll('.num');
  76. // console.log(nums);
  77. //商品是否被選中
  78. function goodStatus(numArr){
  79. let items =document.querySelectorAll(".list li input[type='checkbox']");
  80. return numArr.map((num,index)=>{
  81. if (items[index].checked===false){
  82. return (num=0);
  83. } else {
  84. return num;
  85. }
  86. });
  87. }
  88. //計算總數(shù)量
  89. function getTotalNum(numArr) {
  90. numArr=goodStatus(numArr);
  91. return numArr.reduce((acc, cur)=>acc+cur);
  92. }
  93. //計算每個商品金額
  94. function getAmount(numArr,priceArr){
  95. return numArr.map((num,index)=>num*priceArr[index]);
  96. }
  97. //總金額
  98. function getTotalAmount(amountArr){
  99. amountArr=goodStatus(amountArr);
  100. return amountArr.reduce((acc,cur)=>acc+cur);
  101. }
  102. //自動計算
  103. function autoCalculate() {
  104. //數(shù)量數(shù)組
  105. const numArr=[...nums].map((num)=>parseInt(num.value));
  106. //單價數(shù)組
  107. const prices=document.querySelectorAll('.price');
  108. const pricesArr=[...prices].map((price)=>parseInt(price.textContent));
  109. //金額數(shù)組
  110. const amountArr =getAmount(numArr,pricesArr);
  111. document.querySelector('.total-num').textContent = getTotalNum(numArr);
  112. document.querySelector('.total-amount').textContent =
  113. getTotalAmount(amountArr);
  114. //為每個商品填充金額
  115. document
  116. .querySelectorAll('.amount')
  117. .forEach((amount, index) => (amount.textContent = amountArr[index]));
  118. }
  119. //自動加載
  120. window.onload = autoCalculate();
  121. //數(shù)量變化自動計算
  122. [...nums].forEach((num) => (num.onchange = autoCalculate));
  123. </script>
  124. </body>
  125. </html>

效果:


批改老師:PHPzPHPz

批改狀態(tài):合格

老師批語:
本博文版權(quán)歸博主所有,轉(zhuǎn)載請注明地址!如有侵權(quán)、違法,請聯(lián)系admin@php.cn舉報處理!
全部評論 文明上網(wǎng)理性發(fā)言,請遵守新聞評論服務(wù)協(xié)議
0條評論
作者最新博文
關(guān)于我們 免責申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓,幫助PHP學習者快速成長!
關(guān)注服務(wù)號 技術(shù)交流群
PHP中文網(wǎng)訂閱號
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時隨地碎片化學習
PHP中文網(wǎng)抖音號
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號

  • 登錄PHP中文網(wǎng),和優(yōu)秀的人一起學習!
    全站2000+教程免費學