当前位置:首页 > JavaScript

js实现全选和反选

2026-01-30 19:58:21JavaScript

实现全选和反选功能

在JavaScript中实现全选和反选功能通常涉及操作复选框(checkbox)的checked属性。以下是常见的实现方法:

全选功能

通过遍历所有目标复选框,将它们的checked属性设置为true

function selectAll() {
  const checkboxes = document.querySelectorAll('.item-checkbox');
  checkboxes.forEach(checkbox => {
    checkbox.checked = true;
  });
}

反选功能

通过遍历所有目标复选框,将它们的checked属性取反:

function invertSelection() {
  const checkboxes = document.querySelectorAll('.item-checkbox');
  checkboxes.forEach(checkbox => {
    checkbox.checked = !checkbox.checked;
  });
}

全选/反选复选框控制

通常需要一个主复选框来控制全选和反选:

const masterCheckbox = document.getElementById('master-checkbox');
masterCheckbox.addEventListener('change', function() {
  const checkboxes = document.querySelectorAll('.item-checkbox');
  checkboxes.forEach(checkbox => {
    checkbox.checked = this.checked;
  });
});

动态更新主复选框状态

当子复选框状态变化时,更新主复选框状态:

js实现全选和反选

const checkboxes = document.querySelectorAll('.item-checkbox');
checkboxes.forEach(checkbox => {
  checkbox.addEventListener('change', function() {
    const allChecked = [...checkboxes].every(cb => cb.checked);
    document.getElementById('master-checkbox').checked = allChecked;
  });
});

完整示例代码

<!DOCTYPE html>
<html>
<head>
  <title>全选/反选示例</title>
</head>
<body>
  <input type="checkbox" id="master-checkbox"> 全选/反选
  <hr>
  <input type="checkbox" class="item-checkbox"> 选项1
  <input type="checkbox" class="item-checkbox"> 选项2
  <input type="checkbox" class="item-checkbox"> 选项3

  <script>
    const masterCheckbox = document.getElementById('master-checkbox');
    const checkboxes = document.querySelectorAll('.item-checkbox');

    // 主复选框控制
    masterCheckbox.addEventListener('change', function() {
      checkboxes.forEach(checkbox => {
        checkbox.checked = this.checked;
      });
    });

    // 子复选框控制主复选框状态
    checkboxes.forEach(checkbox => {
      checkbox.addEventListener('change', function() {
        const allChecked = [...checkboxes].every(cb => cb.checked);
        masterCheckbox.checked = allChecked;
      });
    });
  </script>
</body>
</html>

注意事项

  • 确保为复选框元素添加合适的类名或ID以便选择
  • 考虑使用事件委托来提高性能,特别是当复选框数量较多时
  • 在实际应用中,可能需要将选中的项ID收集起来用于后续操作

标签: 全选js
分享给朋友:

相关文章

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let co…

js实现文件下载

js实现文件下载

使用 a 标签下载文件 通过动态创建 a 标签并设置 download 属性实现文件下载。适用于已知文件 URL 或 Blob 数据的情况。 function downloadFile(url, f…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js实现瀑布流

js实现瀑布流

实现瀑布流布局 瀑布流布局是一种常见的网页布局方式,常用于图片展示、商品列表等场景。以下是使用 JavaScript 实现瀑布流布局的几种方法。 纯 JavaScript 实现 通过计算元素的位置和…