当前位置:首页 > JavaScript

js实现全选反选

2026-03-01 01:40:04JavaScript

实现全选与反选功能

全选和反选是表单操作中常见的功能,可以通过JavaScript动态控制复选框的状态。以下是两种典型实现方式:

js实现全选反选

基础DOM操作实现

// 获取全选复选框和子复选框
const selectAll = document.getElementById('selectAll');
const checkboxes = document.querySelectorAll('.item-checkbox');

// 全选逻辑
selectAll.addEventListener('change', function() {
  checkboxes.forEach(checkbox => {
    checkbox.checked = this.checked;
  });
});

// 子复选框逻辑
checkboxes.forEach(checkbox => {
  checkbox.addEventListener('change', function() {
    selectAll.checked = [...checkboxes].every(c => c.checked);
  });
});

反选功能扩展

// 反选按钮事件
document.getElementById('invertSelect').addEventListener('click', function() {
  checkboxes.forEach(checkbox => {
    checkbox.checked = !checkbox.checked;
  });
  updateSelectAllState();
});

// 更新全选状态函数
function updateSelectAllState() {
  selectAll.checked = [...checkboxes].every(c => c.checked);
}

注意事项

  • 确保HTML结构包含全选复选框和带有统一class的子复选框
  • 事件委托方式更适合动态生成的列表
  • 现代框架如Vue/React可通过数据绑定更简洁地实现
<!-- 基础HTML结构示例 -->
<input type="checkbox" id="selectAll">全选
<button id="invertSelect">反选</button>
<div class="item-list">
  <input type="checkbox" class="item-checkbox">选项1
  <input type="checkbox" class="item-checkbox">选项2
</div>

性能优化建议

对于大型列表建议使用事件委托 考虑添加防抖处理频繁操作 可结合本地存储保存选择状态

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

相关文章

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounce…

js实现拷贝

js实现拷贝

实现文本拷贝 使用 document.execCommand 方法(已废弃但兼容性较好): function copyText(text) { const textarea = document…