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

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const cha…

js轮播图实现原理

js轮播图实现原理

轮播图的基本原理 轮播图通过动态切换显示的内容(图片、文本等)实现视觉上的滑动效果。核心原理是利用CSS和JavaScript控制元素的显示与隐藏,或通过变换位置实现滑动动画。 实现方法一:CSS…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js实现dh

js实现dh

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

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…