当前位置:首页 > JavaScript

js实现全选和反选

2026-04-04 11:45:44JavaScript

实现全选功能

通过设置所有复选框的checked属性为true实现全选:

js实现全选和反选

function selectAll() {
  const checkboxes = document.querySelectorAll('input[type="checkbox"]');
  checkboxes.forEach(checkbox => {
    checkbox.checked = true;
  });
}

实现反选功能

遍历所有复选框,将当前选中状态取反:

js实现全选和反选

function invertSelection() {
  const checkboxes = document.querySelectorAll('input[type="checkbox"]');
  checkboxes.forEach(checkbox => {
    checkbox.checked = !checkbox.checked;
  });
}

全选/反选控制按钮

通常需要一个主复选框控制所有子复选框的状态:

const masterCheckbox = document.getElementById('master-checkbox');
masterCheckbox.addEventListener('change', function() {
  const checkboxes = document.querySelectorAll('input[type="checkbox"]:not(#master-checkbox)');
  checkboxes.forEach(checkbox => {
    checkbox.checked = this.checked;
  });
});

动态响应子项变化

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

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

完整示例代码

<input type="checkbox" id="master-checkbox"> 全选/反选
<div class="checkbox-group">
  <input type="checkbox" class="item-checkbox"> 选项1
  <input type="checkbox" class="item-checkbox"> 选项2
  <input type="checkbox" class="item-checkbox"> 选项3
</div>

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

  masterCheckbox.addEventListener('change', function() {
    itemCheckboxes.forEach(checkbox => {
      checkbox.checked = this.checked;
    });
  });

  itemCheckboxes.forEach(checkbox => {
    checkbox.addEventListener('change', function() {
      const allChecked = [...itemCheckboxes].every(cb => cb.checked);
      masterCheckbox.checked = allChecked;
    });
  });
</script>

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

相关文章

vue 实现全选

vue 实现全选

实现全选功能的方法 在 Vue 中实现全选功能通常涉及以下关键步骤: 数据绑定与状态管理 使用 v-model 绑定全选复选框的状态,并通过计算属性或方法管理子项的选中状态。例如: data()…

js如何实现继承

js如何实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例能够访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现图片放大缩小

js实现图片放大缩小

实现图片放大缩小的基础方法 使用CSS的transform: scale()属性可以快速实现图片的放大缩小效果。通过JavaScript动态修改该属性值: const img = document.…

js实现pdf在线预览

js实现pdf在线预览

使用PDF.js实现PDF在线预览 PDF.js是由Mozilla开发的一个开源JavaScript库,可以在网页中直接渲染PDF文件。以下是实现PDF在线预览的步骤: 引入PDF.js库 在HT…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…