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

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.kler.cn/a/578024.html

相关文章:

  • 【AI速读】突破功能验证性能瓶颈:UVM++与仿真器随机化测试平台的融合实践
  • Electron:点击右键保存图片到本地
  • MouseBoost Pro for Mac 鼠标右键助手右键菜单
  • oracle goldengate 各版本支持的源端和目标端的数据库版本列表
  • 从厨电模范到数字先锋,看永洪科技如何助力方太集团开启数字新征程
  • 大彩串口屏开发 —— MODBUS通信
  • 通过计费集成和警报监控 Elasticsearch Service 成本
  • MySQL进阶-关联查询优化
  • 若依ry-vue分离板(完整版)前后端部署
  • 爬虫案例八js逆向爬取网易音乐
  • C++ STL深度解析:现代编程的瑞士军刀
  • Golang的数据库备份与恢复
  • 提升博客流量的核心SEO策略以及AI工具推荐
  • MTK Android12 添加GMS后,报“设备未经过play保护认证“问题
  • 解决电脑问题(6)——键盘问题
  • Windows下安装kafka
  • Python----数据可视化(Seaborn一:介绍,应用)
  • Redis--Hash类型
  • 13、JavaEE核心技术 - Servlet与JSP
  • Python基于Django的医用耗材网上申领系统【附源码、文档说明】