全选…">
当前位置:首页 > JavaScript

js实现全选反选

2026-04-04 02:12:10JavaScript

JavaScript 实现全选/反选功能

HTML 结构示例

创建一组复选框和一个控制全选/反选的按钮:

<input type="checkbox" id="selectAll">全选/取消全选<br>
<div id="checkboxGroup">
  <input type="checkbox" class="item">选项1<br>
  <input type="checkbox" class="item">选项2<br>
  <input type="checkbox" class="item">选项3<br>
</div>
<button id="toggleBtn">反选</button>

全选功能实现

通过监听全选复选框的change事件控制子选项:

js实现全选反选

document.getElementById('selectAll').addEventListener('change', function() {
  const items = document.querySelectorAll('.item');
  items.forEach(item => {
    item.checked = this.checked;
  });
});

反选功能实现

通过按钮点击事件反转所有子选项状态:

js实现全选反选

document.getElementById('toggleBtn').addEventListener('click', function() {
  const items = document.querySelectorAll('.item');
  items.forEach(item => {
    item.checked = !item.checked;
  });
});

联动状态更新

当手动修改子选项时,自动更新全选复选框状态:

const checkboxGroup = document.getElementById('checkboxGroup');
checkboxGroup.addEventListener('change', function(e) {
  if (e.target.classList.contains('item')) {
    const allChecked = [...document.querySelectorAll('.item')]
      .every(item => item.checked);
    document.getElementById('selectAll').checked = allChecked;
  }
});

完整代码整合

将上述功能整合为完整实现:

<!DOCTYPE html>
<html>
<head>
  <title>全选反选示例</title>
</head>
<body>
  <input type="checkbox" id="selectAll">全选/取消全选<br>
  <div id="checkboxGroup">
    <input type="checkbox" class="item">选项1<br>
    <input type="checkbox" class="item">选项2<br>
    <input type="checkbox" class="item">选项3<br>
  </div>
  <button id="toggleBtn">反选</button>

  <script>
    // 全选控制
    document.getElementById('selectAll').addEventListener('change', function() {
      const items = document.querySelectorAll('.item');
      items.forEach(item => {
        item.checked = this.checked;
      });
    });

    // 反选功能
    document.getElementById('toggleBtn').addEventListener('click', function() {
      const items = document.querySelectorAll('.item');
      items.forEach(item => {
        item.checked = !item.checked;
      });
    });

    // 状态联动
    document.getElementById('checkboxGroup').addEventListener('change', function(e) {
      if (e.target.classList.contains('item')) {
        const allChecked = [...document.querySelectorAll('.item')]
          .every(item => item.checked);
        document.getElementById('selectAll').checked = allChecked;
      }
    });
  </script>
</body>
</html>

注意事项

  1. 使用事件委托提高性能
  2. 通过querySelectorAll获取动态节点集合
  3. 使用展开运算符将NodeList转换为数组
  4. every()方法用于检测所有子选项状态

扩展功能建议

  1. 添加部分选中状态(indeterminate)
  2. 支持分组全选控制
  3. 增加本地存储记忆功能
  4. 添加AJAX动态加载选项支持

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

相关文章

js实现倒计时

js实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时功能可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是几种常见的实现方式: 使用 setInterva…

vue实现选择全选

vue实现选择全选

实现全选功能的基本思路 在Vue中实现全选功能通常需要以下核心逻辑:维护一个数组存储选中项的状态,通过计算属性判断是否全选,并通过方法切换全选状态。 数据准备 创建包含可选项目的数据和存储选中状态的…

js实现验证码

js实现验证码

使用Canvas生成图形验证码 在HTML中创建一个Canvas元素用于绘制验证码。通过JavaScript随机生成数字或字母组合,并添加干扰线、噪点等干扰元素增强安全性。 <canvas i…

js实现二叉树

js实现二叉树

二叉树的基本概念 二叉树是一种树形数据结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。二叉树的常见操作包括插入、删除、遍历等。 二叉树的节点定义 在JavaScript中,二叉树的节点可…

js实现求导

js实现求导

实现数值求导的方法 在JavaScript中实现求导通常采用数值方法,因为JavaScript不是符号计算语言。以下是常见的数值微分方法: 中心差分法 中心差分法提供较高精度的导数近似: func…

js钟表实现

js钟表实现

实现JavaScript钟表的基本方法 创建一个简单的JavaScript钟表可以通过以下步骤完成,涵盖数字和模拟两种形式。 数字钟表实现 HTML结构只需一个显示时间的容器: <div i…