当前位置: 首页 > news >正文

JS如何实现全选以及联动效果

 其中notice为整体的渲染输入框,通过他绑定事件委托到子集,因为子集为动态渲染

$(".notice").on("change", ".notice_nav input[type='checkbox']", function () {
    // 获取全选框状态
    const isChecked = $(this).prop("checked");

    // 设置所有子复选框状态
    $(".notice_box .checkbox_id input").prop("checked", isChecked);

    // 计算选中数量(直接使用子项总数或0)
    const checkedCount = isChecked
      ? $(".notice_box .checkbox_id input").length
      : 0;
    $(".checked_num").text(checkedCount);
  });

同时规定并限制为全选框的监听事件,当全选框改变的时候,根据全选框的状态来更新所有子选择框的选中,确保全选和子选择的一致性,同时计算所有被选择的子选择框数量,当存在的时候是数量,不存在的时候为0

然后再调校子选择框位

$(".notice").on("change", ".notice_box .checkbox_id input", function () {
    // 获取所有子复选框
    const $checkboxes = $(".notice_box .checkbox_id input");

    // 计算选中状态
    const checkedCount = $checkboxes.filter(":checked").length;
    const allChecked = checkedCount === $checkboxes.length;

    // 同步全选框状态
    $(".notice_nav input").prop("checked", allChecked);

    // 更新界面显示
    $(".checked_num").text(checkedCount);
  });

同样获取到所有的子集状态,并获得选中的子集长度,同时将长度合并并赋值给变量

同步去操控全选框的位置

更新数据

相关文章:

  • Linux常见指令
  • leetcode-sql数据库面试题冲刺(高频SQL五十题)
  • MySQL第一次作业
  • ubuntu24.04-系统重装
  • fastapi+angular停车管理系统可跨域
  • MaxKB结合DeepSeek快速构建客服企业知识库
  • MySQL 用户与权限管理详解:从角色解锁到安全加固
  • Codemirror编辑器中引入其他语言支持的方式
  • 图形界面控件编程(iOS)
  • 文档进行embedding,Faiss向量检索
  • 数据集笔记:LTA static datasets
  • js实现pdf文件路径预览和下载
  • React Server Components:高性能React开发
  • 【2025年22期免费获取股票数据API接口】实例演示五种主流语言获取股票行情api接口之沪深A股历史成交分布数据获取实例演示及接口API说明文档
  • C#获取本机串口列表
  • 性能测试 学习基础
  • 一招解决Pytorch GPU版本安装慢的问题
  • Node.js 报错 ENOBUFS 处理方案
  • golang从入门到做牛马:第一篇-我与golang的缘分,go语言简介
  • Chain of Draft: 借鉴人类草稿思维让大型语言模型更快地思考
  • 建设局域网网站/百度网址大全 旧版本
  • 北京定制网站公司/2021全国大学生营销大赛
  • cms建站模板app/windows优化大师有哪些功能
  • 彩票网站开发定制/杭州10大软件开发公司
  • 网站优化 检测响应速度/谷歌搜索引擎镜像入口
  • 织梦英文版网站怎么做/seo是什么姓氏