复选框选择示例【JavaScript】

devtools/2024/9/25 0:07:27/

这段代码实现的功能是一个简单的复选框示例,它可以进行全选、反选和取消选中操作。

实现功能:

1. 全选:当点击标签"全选"旁边的复选框时,该页面上所有具有"item"类的复选框都会被选中(或者取消选中,如果它们之前都被选中了)。

2. 反选:当点击"反选"按钮时,当前的复选框会反转它们的选中状态。如果一个选项被选中了,点击按钮后它就会被取消选中;如果一个选项未选中,点击按钮后它就会被选中。

3. 取消选中:当点击"取消选中"按钮时,所有具有"item"类的复选框都会被取消选中,并且"全选"复选框也会自动被取消选中,表示整个列表中没有任何选项被选中。

代码:

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>全选、反选、取消选中</title><style>div {border: 1px solid #000;width: 260px;margin-top: 20px;margin-bottom: 20px;}</style></head><body><h1>复选框选择示例</h1><label><input type="checkbox" id="selectAll"> 全选</label><div><label><input type="checkbox" class="item"> 选项 1</label><label><input type="checkbox" class="item"> 选项 2</label><label><input type="checkbox" class="item"> 选项 3</label></div><button id="invertSelection">反选</button><button id="clearSelection">取消选中</button><script>document.addEventListener('DOMContentLoaded', function() {const selectAllCheckbox = document.getElementById('selectAll');const itemCheckboxes = document.querySelectorAll('.item');const invertButton = document.getElementById('invertSelection');const clearButton = document.getElementById('clearSelection');// 全选功能selectAllCheckbox.addEventListener('click', function() {itemCheckboxes.forEach(checkbox => {checkbox.checked = selectAllCheckbox.checked;});});// 反选功能// invertButton.addEventListener('click', function() {// 	itemCheckboxes.forEach(checkbox => {// 		checkbox.checked = !checkbox.checked;// 	});// 	selectAllCheckbox.checked = false; // 同时取消全选// });// 反选功能invertButton.addEventListener('click', function() {let allUnchecked = true; // 检查是否所有复选框未选中itemCheckboxes.forEach(checkbox => {if (checkbox.checked) {allUnchecked = false; // 只要有一个复选框选中,就不是全部未选中}checkbox.checked = !checkbox.checked; // 反选操作});// 如果全部未选中,则选中全选selectAllCheckbox.checked = allUnchecked;});// 取消选中功能clearButton.addEventListener('click', function() {itemCheckboxes.forEach(checkbox => {checkbox.checked = false;});selectAllCheckbox.checked = false; // 同时取消全选});});</script></body>
</html>

部分代码解析:

javascript">				// 全选功能selectAllCheckbox.addEventListener('click', function() {itemCheckboxes.forEach(checkbox => {checkbox.checked = selectAllCheckbox.checked;});});

这段JavaScript代码是关于一个“全选”复选框(selectAllCheckbox)的功能。当用户点击这个“全选”复选框时,它会触发一个事件,这个事件会遍历一个复选框数组(itemCheckboxes),并将数组中每个复选框的选中状态checked设置为与“全选”复选框的选中状态相同。

下面是代码的详细解析:

javascript">selectAllCheckbox.addEventListener('click', function() {...});
  • 这行代码给selectAllCheckbox(代表“全选”复选框的元素)添加了一个点击事件监听器。当用户点击这个复选框时,会执行提供的函数。
javascript">itemCheckboxes.forEach(checkbox => {...});
  • 这行代码使用forEach方法来遍历itemCheckboxes数组。itemCheckboxes很可能是一个包含页面上其他复选框元素的数组。
javascript">checkbox.checked = selectAllCheckbox.checked;
  • forEach的回调函数内部,这行代码将每个checkbox(即itemCheckboxes数组中的每个元素)的checked属性设置为selectAllCheckboxchecked属性值。换句话说,它确保了当“全选”复选框被选中或取消选中时,数组中的所有其他复选框也会被相应地选中或取消选中。


http://www.ppmy.cn/devtools/116721.html

相关文章

OceanBase中Range 分区 和 Range Columns 分区

1. Range 分区和 Range Columns 分区的区别 Range 分区&#xff1a;只允许基于一个整型列&#xff08;INT 类型&#xff09;的值范围进行分区。通常适用于那些可以自然用整数来表达的值&#xff0c;如商品编号、用户 ID 等。OceanBase 限定 Range 分区的分区键为 INT 类型&…

[ffmpeg]音频格式转换

本文主要梳理 ffmpeg 中的音频格式转换。由于采集的音频数据和编码器支持的音频格式可能不一样&#xff0c;所以经常需要进行格式转换。 API 调用 常用 API struct SwrContext *swr_alloc(void); int swr_init(struct SwrContext *s); struct SwrContext *swr_alloc_set_opt…

yolo自动化项目实例解析(五)ui页面整理2 (1.85)

三、添加主窗口及其他窗口ui文件 窗口ui目录&#xff0c;下面操作都在ui目录中 1 、主窗口 main.ui <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>mainWindow</class><widget class"QMa…

财富通公司开发维修售后小程序,解决售后维修问题

财富通公司为广大用户开发的维修售后小程序&#xff0c;旨在便捷地解决售后维修问题&#xff0c;提升用户体验&#xff0c;增强客户粘性。以下是该小程序如何具体解决售后维修问题的几个关键点&#xff1a; 一. 一站式报修流程 1.简化操作&#xff1a;用户只需通过小程序几步…

开源 AI 智能名片链动 2+1 模式 S2B2C 商城小程序与社交电商的崛起

摘要&#xff1a;本文深入探讨了社交电商迅速发展壮大的原因&#xff0c;并分析了开源 AI 智能名片链动 21 模式 S2B2C 商城小程序在社交电商中的重要作用。通过对传统电商与社交电商的对比&#xff0c;以及对各发展因素的剖析&#xff0c;阐述了该小程序如何为社交电商提供新的…

CVE-2024-46103

前言 CVE-2024-46103 SEMCMS的sql漏洞。 漏洞简介 SEMCMS v4.8中&#xff0c;SEMCMS_Images.php的search参数&#xff0c;以及SEMCMS_Products.php的search参数&#xff0c;存在sql注入漏洞。 &#xff08;这个之前就有两个sql的cve&#xff0c;这次属于是捡漏了&#x1f6…

算法打卡:第十一章 图论part05

今日收获&#xff1a;并查集理论基础&#xff0c;寻找存在的路径 1. 并查集理论基础&#xff08;from代码随想录&#xff09; &#xff08;1&#xff09;应用场景&#xff1a;判断两个元素是否在同一个集合中 &#xff08;2&#xff09;原理讲解&#xff1a;通过一个一维数组…

Spring Boot文件上传/下载问题

在现代的 Web 应用程序中&#xff0c;文件上传和下载是非常常见的功能。Spring Boot 提供了非常简便和强大的解决方案来处理文件上传和下载。虽然基本功能很容易实现&#xff0c;但在实际项目中&#xff0c;文件大小限制、并发上传、文件类型验证、安全性等问题也常常需要重点考…