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
  }
})
相关推荐
treasure1408 小时前
【复古】浅尝Django前后端不分离
前端·css·python·django·bootstrap·html·web
jay神9 小时前
基于 YOLOv8 的手势识别系统(Web 版)
前端·人工智能·python·深度学习·yolo·计算机视觉·计算机毕业设计
屏什么录10 小时前
长时间录屏中途崩溃:MP4 打不开的 6 种救回方案与参数设置
前端·音视频开发
code_Bo10 小时前
不只命令行:我把跨 Agent 会话同步做成了桌面应用
前端·javascript·后端
kyriewen10 小时前
AI 能把页面写出来,为什么改个需求就开始崩?
前端·javascript·人工智能
OpsEye10 小时前
同一套用例跑两个大模型接口,差异到底出在哪
javascript·ai编程
X1A0RAN11 小时前
PPT 图片批量处理教程:导出全部幻灯片 · 提取全部素材
开发语言·javascript·powerpoint
涛涛ing11 小时前
2026年最值得关注的前端变化,藏在“默认值”里
前端
量化分析码农12 小时前
股票历史数据的复权参数对照:多级别返回的字段与数值差异
java·javascript·后端
亿元程序员13 小时前
太牛了!这AI做出来的游戏,居然还能变现!
前端