全选…">
当前位置:首页 > 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实现拖拽

实现拖拽的基本步骤 通过监听鼠标事件(mousedown、mousemove、mouseup)实现拖拽功能。以下是核心代码逻辑: const draggableElement = document.…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <…

js实现密码

js实现密码

密码强度验证 使用正则表达式验证密码强度是一种常见方法。以下代码检查密码是否包含大小写字母、数字和特殊字符,且长度至少为8位: function checkPasswordStrength(pass…