当前位置: 首页 > 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);
  });

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

同步去操控全选框的位置

更新数据

http://www.dtcms.com/a/56743.html

相关文章:

  • 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: 借鉴人类草稿思维让大型语言模型更快地思考
  • createrepo centos通过nginx搭建本地源
  • 达梦数据库如何在Linux上配置DTS工具
  • Qt:多线程
  • 基于React.js 技术栈的服务端渲染框架Next.js 实战记录
  • 【MySQL】事务|概念|如何回滚|基本特性|MySQL事务隔离性具体怎么实现的
  • 【Go学习实战】03-2-博客查询及登录
  • c++ 类的常量成员函数
  • 机器学习之强化学习
  • 更新Vim使其支持系统剪切板
  • 软件工程笔记下