【Java 进阶篇】JavaScript 表格全选案例详解

news/2024/10/18 16:41:56/

在这里插入图片描述

在网页开发中,表格(Table)是一种常用的HTML元素,用于以表格形式展示数据。对于包含大量数据的表格,提供一个全选复选框可以极大地提高用户体验,方便用户一次性选择或取消选择所有项目。本篇博客将详细介绍如何使用JavaScript创建一个表格全选功能,适用于面向基础小白的读者。我们将从基础的HTML和CSS开始,然后逐步添加JavaScript代码,创建一个交互性强的表格。

HTML 结构

首先,我们需要创建一个基本的HTML结构,包括一个表格和一个全选复选框。以下是一个简单的HTML结构:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>表格全选示例</title><style>table {border-collapse: collapse;width: 80%;margin: 20px auto;}th, td {border: 1px solid #ccc;padding: 8px;text-align: left;}th {background-color: #f2f2f2;}tr:hover {background-color: #f5f5f5;}</style>
</head>
<body><h2>示例表格</h2><table><thead><tr><th><input type="checkbox" id="selectAll"> 全选</th><th>姓名</th><th>年龄</th><th>城市</th></tr></thead><tbody><tr><td><input type="checkbox" class="checkbox"></td><td>小明</td><td>25</td><td>北京</td></tr><tr><td><input type="checkbox" class="checkbox"></td><td>小红</td><td>28</td><td>上海</td></tr><tr><td><input type="checkbox" class="checkbox"></td><td>小刚</td><td>22</td><td>广州</td></tr></tbody></table><script>// JavaScript 代码将在下面添加</script>
</body>
</html>

上述HTML代码创建了一个包含表头和表格数据的简单表格。我们添加了一个全选复选框(id 为 selectAll),以及每一行的复选框(class 为 checkbox)。

JavaScript 代码

接下来,我们将添加JavaScript代码,以便使全选复选框能够选择或取消选择所有项目,同时根据所选项目更新全选复选框的状态。以下是JavaScript代码的详细解释:

<script>const selectAll = document.getElementById('selectAll');const checkboxes = document.querySelectorAll('.checkbox');// 为全选复选框添加点击事件监听器selectAll.addEventListener('click', function () {for (const checkbox of checkboxes) {checkbox.checked = selectAll.checked;}});// 为每个项目的复选框添加点击事件监听器for (const checkbox of checkboxes) {checkbox.addEventListener('click', function () {const allChecked = [...checkboxes].every(checkbox => checkbox.checked);selectAll.checked = allChecked;});}
</script>

让我们详细解释一下这段JavaScript代码:

  1. 我们首先获取全选复选框和所有项目的复选框,分别保存在 selectAllcheckboxes 变量中。

  2. 然后,我们为全选复选框添加一个点击事件监听器。当用户点击全选复选框时,我们使用一个 for...of 循环遍历所有项目的复选框,将它们的 checked 属性设置为全选复选框的状态(selectAll.checked),从而实现一键全选或取消全选的功能。

  3. 接下来,我们为每个项目的复选框添加点击事件监听器。当用户点击某个项目的复选框时,我们使用 every 方法检查是否所有项目的复选框都被选中。如果是的话,我们将全选复选框的状态设为选中,否则设为未选中。

效果演示

在浏览器中打开上述HTML文件,您会看到一个包含表格和全选复选框的页面。点击全选复选框,所有的单个选择复选框都会被选中;取消全选复选框,所有的单个选择复选框都会取消选中。

这个示例展示了如何使用JavaScript轻松实现表格的全选功能,提高了用户体验,特别是在处理大批量数据时。这种方法可以应用于各种Web应用程序,包括管理系统、电子商务平台等。

总结

本篇博客详细介绍了如何使用JavaScript创建一个简单的表格全选功能。这对于处理表格数据并提供更好的用户体验,希望大家能根据该案例掌握更多关于 JavaScript 的知识,开发更多的技能!

作者信息

作者 : 繁依Fanyi
CSDN: https://techfanyi.blog.csdn.net
掘金:https://juejin.cn/user/4154386571867191

http://www.ppmy.cn/news/1165542.html

相关文章

FPGA片上RAM、片上ROM Nios 程序不起作用的解决方法

ctrl B 编译Nios工程 将 Nios software 的 meminit.qip onchip_rom.hex onchip_ram.hex meminit.spd 文件拷贝到FPGA目录下&#xff0c;再编译FPGA能起作用 Nios设置&#xff1a; reset 设置为 ROM 异常设置为 RAM 无优化

Git 安装和基础命令、IDEA 基础操作

目录 总结命令&#xff1a;1、安装&#xff1a;1、安装2、配置环境变量&#xff1a; 2、Git操作&#xff1a;1、初始化&#xff1a;1、姓名邮箱&#xff1a;2、初始化仓库&#xff1a;3、工作区和暂存区分析 2、提交文件3、查看版本库状态4、安装小乌龟git不显示图标 5、查看提…

WINCC趋势画面模板

加载按钮 Sub OnClick(Byval Item) Dim Chart,tag,ctrl,objTrendWnd,objTimeAxis,objValAxis,objTrendSet ChartScreenItems("组合框2")Chart tagChart.SelTextSet ctrl ScreenItems("控件1")threadSet objTrend…

星环科技向量数据库Transwarp Hippo1.1发布:一库搞定向量+全文联合检索,提升大模型准确率

星环科技向量数据库Transwarp Hippo自发布已来,受到了众多用户的欢迎,帮助用户实现向量数据的存储、管理和检索,探索和实践大模型场景。在与用户不断地深入交流以及实践中,Hippo迎来了V1.1版本,一套系统即可支持向量与全文联合检索,提高文本数据的召回精度,从而提升大语…

【分享】7-Zip压缩包的密码可以取消吗?

7-Zip压缩包设置了“密码保护”&#xff0c;后面又不想要了&#xff0c;可以取消吗&#xff1f; 首先&#xff0c;我们要分两种情况来看&#xff0c;是记得密码&#xff0c;但不想每次打开压缩包都要输入密码&#xff0c;所以想取消密码&#xff0c;还是把密码忘记了所以想取消…

python、SQL日新增人数统计

提供思路&#xff1a; 新增人数统计&#xff0c;就是要看比前一天新加的人。 用一个SQL语句解决。 解决的方案SQL&#xff0c;按日期排序后只保留第一次出现的数据&#xff0c;这个问题就解决了。保留第一次出现的数据按日进行统计&#xff0c;日数据就是新增的数据。

Leetcode 第 363 场周赛题解

Leetcode 第 363 场周赛题解 Leetcode 第 363 场周赛题解题目1&#xff1a;2859. 计算 K 置位下标对应元素的和思路代码复杂度分析 题目2&#xff1a;让所有学生保持开心的分组方法数思路&#xff1a;排序 枚举代码复杂度分析 题目3&#xff1a;最大合金数思路&#xff1a;二分…

..\FreeRTOS\include\FreeRTOS.h(1277): error: #65: expected a “;“出现的这个错误标志解决方法

..\FreeRTOS\include\FreeRTOS.h(1277): error: #65: expected a ";" 近来写软件过程中&#xff0c;当在某一个.C文件中我申明了FreeRTOS.h文件&#xff0c;结果呢编译是出现报错了 经过查找&#xff0c;是因为我在另外一个文件声明了 #include <stdbool.h> …