当前位置:首页 > 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
分享给朋友:

相关文章

vue实现全选下载

vue实现全选下载

Vue实现全选下载功能 全选下载功能通常涉及前端文件列表的多选操作和批量下载逻辑。以下是基于Vue的实现方案: 数据准备与渲染 在Vue组件中定义文件列表数据和选中状态: data() { r…

js 实现vue模板

js 实现vue模板

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

js实现拖拽

js实现拖拽

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

js类实现

js类实现

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

js实现目录

js实现目录

实现目录的基本思路 在JavaScript中实现目录功能通常涉及以下几个核心步骤:解析文档中的标题元素(如h1-h6),动态生成目录结构,并添加交互逻辑(如点击跳转)。以下是具体实现方法: 解析标题…

js进度条实现

js进度条实现

使用HTML和CSS创建基础结构 在HTML中创建一个容器元素用于显示进度条,通常使用<div>元素。CSS用于设置进度条的样式,包括宽度、高度、颜色和圆角等属性。 <div cl…