1. //功能全选和全不选的功能
  2. //1.全选复选框
  3. const checkAll =document.querySelector('#check-all');
  4. //2.每个商品的复选框
  5. const checkItems =document.getElementsByName("item");
  6. //change 当控件的值发生变量的时候 触发它
  7. //console.log(checkAll.checked);
  8. //3.每个商品状态必须和全选复选框同步变化
  9. checkAll.onchange = (ev)=>
  10. checkItems.forEach(((item)=>
  11. item.checked= ev.target.checked
  12. ));
  13. //4.根据每个商品的复选框状态,动态设置全选框的状态
  14. //checkITems.forEach(item=>item.onchange=()=>chenckIT)
  15. checkItems.forEach(function(item){
  16. item.onchange=function(){
  17. let res=[...checkItems].every(function(item){
  18. return item.checked;
  19. });
  20. checkAll.checked=res;
  21. }
  22. })
  23. //简化版
  24. //checkItems.forEach(item=>(item.onchange=()=>(checkAll.checked=[...checkItems].every(item=>))))
  25. //功能二:自动计算
  26. //功能:分析所有的计算,都是基于“数量的变化",第一步就要获取所有商品的数量控件
  27. const numInput= document.querySelectorAll('input[type="number"]');
  28. // console.log(numInput);
  29. //给一个数量控件绑定一事件
  30. //当控件的值发生变化的是Hi好,自动进行重新计算
  31. numInput.forEach(input=>(input.onchange=autoCalculate));
  32. function autoCalculate(){
  33. //第一步 获取每个商品的金额=数量 * 单价
  34. //数量 ,当前有多个商品,所以呀应该返回有数组成的集合
  35. const numbers = document.querySelectorAll('input[type="number"]');
  36. console.log(numbers);
  37. console.log([...numbers]);
  38. // [...numbers].forEach(num=>console.log(typeof parseInt(num.value)));
  39. //[...numbers].forEach(num=>console.log(num.value * 1));
  40. const numArr =[...numbers].map (num=>num.value * 1);
  41. console.log(numArr);
  42. //获取单价组成的数组
  43. const prices = document.querySelectorAll("tbody .price");
  44. console.log(prices);
  45. //const numbers =document.querySelectorAll('input[type="number]');
  46. const priceArr=[...prices].map(price=>price.textContent * 1);
  47. console.log(numArr,priceArr);
  48. const amountArr= [priceArr,numArr].reduce((prve,curr)=>prve.map((item,key)=>item*curr[key]));
  49. console.log(amountArr);
  50. //第二步 商品总数
  51. let sum=numArr.reduce((prev,curr)=>prev+curr);
  52. //第三步 所有的商品总金额
  53. let total =amountArr.reduce((prev,curr)=>prev+curr);
  54. //第四步 讲以上计算的结果,渲染到页面上
  55. document.querySelectORAll('.amount').forEache((item,index)=>(item.textContent=amountArr[index]));
  56. document.querySelector("#sum").textContent=sum;
  57. document.querySelector("#total-amount").textContent=total;
  58. }

更多相关文章

  1. 京东秒杀区
  2. 0629商品信息表
  3. html前端常用控件的用法
  4. 商品信息表设计
  5. HTML注册表单控件实例、CSS模块化理解与CSS基本/上下文选择器的
  6. 案例表格的应用
  7. HTML表格实战:制作商品信息表格
  8. 0629作业
  9. HTML表格案例《商品信息表》

随机推荐

  1. some step in studying android
  2. Android(安卓)小应用之一个activity实现
  3. Android(安卓)apk的维护与升级
  4. 在 Android(安卓)上使用 XML 和 JSON,第 2
  5. android解析json数组
  6. android 开发中遇到错误及解决办法总结(
  7. Android使用WCF的服务程序之入门
  8. Android Studio插件
  9. android网站汇集
  10. android 读取mac地址