当前位置:首页 > JavaScript

js 实现全选

2026-04-03 22:39:46JavaScript

实现全选功能的方法

在JavaScript中实现全选功能,可以通过操作DOM元素的checked属性来控制复选框的状态。以下是两种常见的实现方式:

方式一:通过ID获取全选复选框和目标复选框组

js 实现全选

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

// 监听全选复选框的点击事件
selectAll.addEventListener('change', function() {
    checkboxes.forEach(checkbox => {
        checkbox.checked = this.checked;
    });
});

方式二:通过事件委托实现动态元素的全选

js 实现全选

如果复选框是动态生成的,可以使用事件委托方式:

document.addEventListener('change', function(e) {
    if (e.target.id === 'selectAll') {
        const checkboxes = document.querySelectorAll('.item-checkbox');
        checkboxes.forEach(checkbox => {
            checkbox.checked = e.target.checked;
        });
    }
});

反向控制全选状态

当手动勾选部分复选框时,全选复选框的状态需要自动更新:

checkboxes.forEach(checkbox => {
    checkbox.addEventListener('change', function() {
        const allChecked = Array.from(checkboxes).every(cb => cb.checked);
        selectAll.checked = allChecked;
    });
});

完整示例代码

<input type="checkbox" id="selectAll"> 全选
<div class="item-list">
    <input type="checkbox" class="item-checkbox"> 选项1
    <input type="checkbox" class="item-checkbox"> 选项2
    <input type="checkbox" class="item-checkbox"> 选项3
</div>

<script>
    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() {
            const allChecked = Array.from(checkboxes).every(cb => cb.checked);
            selectAll.checked = allChecked;
        });
    });
</script>

注意事项

  • 确保复选框的类名或ID选择器匹配正确
  • 动态生成的元素需要使用事件委托或重新绑定事件
  • 在Vue/React等框架中,可以通过数据绑定更简单地实现全选功能

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

相关文章

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现拷贝

js实现拷贝

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

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现滚动

js实现滚动

实现滚动效果的方法 在JavaScript中实现滚动效果可以通过多种方式完成,以下是一些常见的方法: 使用window.scrollTo() window.scrollTo()方法可以将页面滚动到指…

js实现上传文件

js实现上传文件

文件上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现文件上传功能。 <input type="file"…