当前位置:首页 > JavaScript

js实现全选和反选

2026-01-30 19:58:21JavaScript

实现全选和反选功能

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

全选功能

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

js实现全选和反选

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

反选功能

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

js实现全选和反选

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;
  });
});

动态更新主复选框状态

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

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实现分页

实现分页的基本思路 分页功能通常需要处理数据分割、页码生成和用户交互。核心逻辑包括计算总页数、根据当前页截取数据、渲染页码按钮等。 前端分页实现(静态数据) 假设已有全部数据,仅需前端分页展示:…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与响应式…

vue全选实现

vue全选实现

Vue 全选实现方法 使用 v-model 绑定复选框 在 Vue 中,可以通过 v-model 绑定复选框的状态。全选功能可以通过一个主复选框控制多个子复选框的状态。 <template&…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…