导航
电话
咨询
地图
顶部
本文讲解如何通过 javascript 为页面中多个 `
在实际开发中,我们常需为一组结构相似的元素(如任务列表)添加交互功能。例如:每项后配一个“toggle”按钮,点击后仅该行文本添加 .done 类以显示删除线效果。但若直接复制相同 id(如 id="Btn" 或 id="liEl"),会导致 document.getElementById() 始终只返回第一个匹配元素——这正是原始代码仅作用于首项的根本原因。
正确做法是:用 class 替代 id 实现批量选择,并为每个按钮单独绑定事件处理逻辑。
✅ 推荐 HTML 结构(语义化 + 可维护):
✅ 对应 CSS 样式(保持不变):
.done { text-decoration: line-through; text-decoration-thickness: 0.2rem; text-decoration-color: red; }
✅ 现代化 JavaScript 实现(推荐使用 forEach + closest 提升健壮性):
document.querySelectorAll('.toggle-btn').forEach(button => { button.addEventListener('click', () => { // 向上查找最近的同级
⚠️ 注意事项:
对应 JS:
button.addEventListener('click', () => { const taskItem = button.closest('.task-item'); const listItem = taskItem?.querySelector('.list-item'); listItem?.classList.toggle('done'); });
总结:实现多组独立交互的核心在于用类选择器批量获取元素,并为每个实例单独注册事件监听器,同时借助 DOM 遍历方法精准定位目标节点。这一模式可轻松扩展至其他场景(如展开/收起、启用/禁用、计数器等),是前端开发中的基础工程实践。
# ai # html # js # 前端 # 前端开发 # red # javascript # java # 浏览器 # ssl # css
相关栏目: 【 行业资讯 】 【 网络运营 】 【 GEO优化 】 【 营销推广 】 【 SEO优化 】 【 技术教程 】 【 代码知识 】 【 AI推广 】
相关推荐: 如何在Golang中处理二进制数据_Golang io与encoding/binary二进制操作方法 Python抽象类与接口设计_规范说明【指导】 Win11怎么关闭自动维护 Win11禁用系统自动维护功能【优化】 Win10路由器怎么隐藏ssid Win10隐藏wifi名称设置【指南】 Windows10如何更改任务栏高度_Win10解除锁定调整大小 Mac的“调度中心”与“空间”怎么用_Mac多桌面高效管理【技巧】 Win11怎么用设置清理回收站_Win11设置清理回收站技巧【步骤】 如何使用Golang指针与结构体结合_修改结构体内部字段 Win11怎么开启智能存储_Windows11存储感知自动清理文件 Go 语言标准库为何不提供泛型切片的 Contains 方法? 如何诊断并终止卡死的 multiprocessing 子进程 Win11视频默认播放器怎么改_Win11关联第三方播放器【步骤】 MAC如何修改默认应用程序_MAC文件后缀关联设置与打开方式更改【教程】 php嵌入式多设备通信怎么实现_php同时管理多个串口设备【操作】 Mac的“预览”如何合并多个PDF_Mac文件处理技巧【效率】 Win11任务栏日历打不开怎么办 Win11修复日历通知中心【指南】 Windows10怎么备份注册表_Windows10注册表备份步骤【教程】 Win11怎么清理C盘系统日志_Win11清理系统日志文件【步骤】 Win11怎么设置快速访问_Windows11文件资源管理器主页 VSC怎么在PHP中调试MySQL_数据库交互排查技巧【教程】 Windows任务计划服务异常原因_任务调度失败的处理方案 mac怎么看硬盘大小_MAC查看磁盘存储空间与文件占用【详解】 Win10怎么更改用户名 Win10修改账户名称操作教程 Win11怎么更改输入法顺序_Win11调整语言首选位置【设置】 Win11怎么设置默认邮件客户端 Win11修改Mail应用关联【教程】 Windows10任务栏图标变成白色文件_Win10重建图标缓存修复方法 Python函数接口稳定性_版本演进解析【指导】 如何在Golang中处理URL参数_Golang URL参数解析与路由映射方法 Win11怎么设置虚拟键盘_打开Win11屏幕键盘操作指南【技巧】 Win11怎么设置屏保_Windows 11屏幕保护程序开启与设置【详解】 Win11如何设置文件权限 Win11 NTFS文件夹所有权与安全设置【高级】 Python如何创建带属性的XML节点 Python代码测试策略_质量保障解析【教程】 Win10怎样卸载DockerDesktop_Win10卸载DockerDesktop步骤【步骤】 Win11怎么清理C盘下载文件夹_Win11清理下载文件夹技巧【教程】 如何在Golang中理解指针比较_Golang地址比较与相等判断 如何使用Golang捕获测试日志_Golang testing日志记录方法 php高频调试功能有哪些_php常用调试函数与工具汇总【解答】 C#如何使用XPathNavigator高效查询XML 如何使用Golang实现容器自动化运维_Golang Docker运维管理方法 Win11怎样安装网易云音乐_Win11安装网易云教程【步骤】 Windows10无法连接到Internet_Win10网络重置命令详解 如何开启Windows的远程服务器管理工具(RSAT)?(管理服务器) Windows10系统怎么查看已保存密码_Win10凭据管理器查看Web Win11怎么把图标拖到任务栏_Win11固定应用快捷方式指南【方法】 如何使用Golang进行HTTP服务性能测试_测量吞吐量和延迟 PhpStorm怎么调试PHP代码_PhpStorm断点设置与调试启动步骤【指南】 Win11无法安装软件怎么办_Win11解除应用安装限制设置【修复】 Win10怎样安装Excel数据分析工具_Win10安装分析工具包步骤【教程】 c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
赣ICP备2024031479号