jQuery细节以及使用应用场景

解决什么问题

核心:避免只能单个选中、单个修改商品带来的重复操作、效率低的问题

  1. 不用一个个点勾选、一个个删除、一个个修改选中状态;
  2. 支持一次性批量结算、批量删除、批量移入收藏、批量修改选中;
  3. 统一计算选中商品总价、总数量,方便用户核对;
  4. 前端减少多次重复请求,后端也不用多次处理单条数据,提升体验和性能。

反例:没有批量操作,想买 5 件商品,就要挨个勾选;想删掉 3 件不要的,就要点 3 次删除。

二、应用场景(电商购物车)

  1. 全选 / 取消全选:一键勾选购物车里全部商品,或者一键取消所有勾选
  2. 批量删除:勾选多个不要的商品,一次全部删掉
  3. 批量结算:勾选多个商品,统一去下单结算(最常用)
  4. 批量移入收藏:勾选多个商品,批量加到收藏夹,暂时不买
  5. 批量修改规格(次要):少量场景批量改尺码、颜色(不多见)
  6. 反选:选中当前没勾选的商品,取消已经勾选的

三、怎么使用(前端开发思路,贴合你做的购物车作业)

基础数据结构(购物车数组)

js

复制代码
let cartList = [
  {id:1,name:"商品1",price:100,num:1,isCheck:false},
  {id:2,name:"商品2",price:200,num:2,isCheck:false},
  {id:3,name:"商品3",price:150,num:1,isCheck:false}
]

isCheck 是核心标记:true = 选中,false = 未选中

1. 单选(单个商品勾选框)

点击单个复选框 → 修改这条数据的 isCheck; 每次单选后,判断:是不是所有商品都选中了,同步更新【全选框】的状态。

2. 全选按钮逻辑

点击全选:

  • 如果全选框为 true:循环遍历 cartList,所有 item.isCheck = true
  • 如果全选框为 false:循环遍历 cartList,所有 item.isCheck = false

3. 批量删除

先过滤数组,保留 isCheck === false 的商品,覆盖原购物车; 再重新渲染页面。

js

复制代码
// 批量删除选中商品
cartList = cartList.filter(item=>!item.isCheck)

4. 批量结算

先过滤出选中的商品 cartList.filter(item=>item.isCheck)

  • 校验:有没有选中商品,没选中提示 "请选择商品"
  • 统计:总数量、总价格
  • 把选中商品传给下单接口,提交订单

5. 总价实时计算

每次勾选、取消勾选都重新遍历选中项累加:

js

复制代码
let totalPrice = 0
cartList.forEach(item=>{
  if(item.isCheck){
    totalPrice += item.price * item.num
  }
})
相关推荐
SailingCoder3 小时前
【封闭结束1】端到端交付:Agent 一次请求如何走完全链路
前端·安全·ai·面试·agent·harness
风骏时光牛马5 小时前
AI多模块协同自动化工作流
前端
zhangminghuan5 小时前
前端面试应对技巧
前端·面试·职场和发展
计算机魔术师5 小时前
潜伏14年的PHP致命洞,AI跑两天就交卷了
前端
IT_陈寒5 小时前
Vue的这个响应式陷阱我居然现在才发现
前端·人工智能·后端
Python自动化直播6 小时前
智能脚本批量管理拆开看:导入、导出、重写、试听
前端·python·ai·秒播
开开心心就好7 小时前
发票信息录入太麻烦?离线工具一键转表格
运维·服务器·前端·pdf·ocr·maven·intellij-idea
এ慕ོ冬℘゜7 小时前
ES Promise.all/ Promise.race
前端·javascript·elasticsearch