导航
电话
咨询
地图
顶部
本文讲解如何通过 javascript 为页面中多个 `
在实际开发中,使用 id 属性标识多个相同类型的元素(如多个
以下是推荐的完整实现方案:
✅ HTML 结构(语义化 + 可维护)
✅ 使用 class 替代 id,确保结构合法; ✅ 为 和 分别赋予语义化类名(如 list-element / toggle-btn),便于后期样式与逻辑扩展。
✅ CSS 样式(增强视觉反馈)
.list-element.done { text-decoration: line-through; text-decoration-thickness: 0.2rem; text-decoration-color: red; opacity: 0.7; }
? 将 .done 类作用于 .list-element,避免样式污染;添加 opacity 提升用户体验。
✅ JavaScript 逻辑(健壮 + 面向未来)
// 获取所有按钮节点(返回 HTMLCollection) const toggleButtons = document.querySelectorAll('.toggle-btn'); // 为每个按钮绑定点击事件 toggleButtons.forEach((btn, index) => { btn.addEventListener('click', function () { // 安全获取前一个同级
⚠️ 关键注意事项: 使用 document.querySelectorAll() 而非 getElementsByClassName(),前者返回静态 NodeList,更易配合 forEach; 采用 this.previousElementSibling 动态定位关联 ,不依赖索引,避免因 DOM 顺序调整失效; 添加 tagName 校验,提升代码鲁棒性; 若未来需支持“按钮在 内部”等不同布局,可改用 closest() + querySelector() 组合定位(例如:this.closest('li')?.classList.toggle('done'))。
⚠️ 关键注意事项:
该方案不仅解决了当前多按钮独立控制问题,还具备良好的可读性、可维护性与扩展性,符合现代前端开发最佳实践。
# html # 前端 # 前端开发 # red # javascript # java # node # ssl # css # 点击事件
相关栏目: 【 行业资讯 】 【 网络运营 】 【 GEO优化 】 【 营销推广 】 【 SEO优化 】 【 技术教程 】 【 代码知识 】 【 AI推广 】
相关推荐: PythonDocker高级项目部署教程_多容器管理与CI/CD流水线 c++如何实现一个高性能的环形队列(Ring Buffer)_c++无锁实现方法【并发】 Win11怎么设置桌面图标间距_Windows11注册表IconSpacing修改 Win11怎么制作U盘启动盘_Win11原版系统安装盘制作【详解】 Win11怎么关闭粘滞键_彻底禁用Windows 11连按Shift粘滞键【步骤】 Windows如何设置登录时的欢迎屏幕背景?(锁屏界面) 如何在Golang中使用container/heap实现堆_Golang container/heap最小堆方法 Win11怎么清理C盘系统日志_Win11清理系统日志文件【步骤】 Win11怎么关闭用户账户控制UAC_Windows11更改通知设置等级 c++怎么操作redis数据库_c++ hiredis库连接与命令执行【实战】 Win11怎么开启游戏模式_Win11优化游戏帧数性能【教程】 Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】 如何在同包不同文件中正确引用 Go 结构体 Win11怎么设置任务栏大小_Windows11注册表修改TaskbarSi值 c++输入输出流 c++ cin与cout格式化输出【方法】 Windows蓝屏错误0x00000023怎么修复_FAT文件系统错误处理 Win11输入法切换快捷键怎么改_Windows 11自定义语言切换键位【教程】 Win11如何开启telnet服务 Win11启用Telnet客户端【步骤】 为什么本地php环境运行php脚本卡顿_php执行效率优化方法与设置【说明】 Win11怎么设置屏保时间_调整Win11屏幕保护等待时间【详解】 如何使用Golang sort排序切片_Golang sort排序方法示例 php查询数据怎么导出csv_查询结果转csv文件保存【操作】 Win11如何关闭小娜Cortana Win11禁用Cortana语音助手【优化】 Win11怎么关闭任务栏小图标_Windows11任务栏角溢出设置 如何在 IIS 上为 ASP.NET 6 应用排除特定目录并交由 PHP 处理 Mac如何查看电池健康百分比_Mac系统信息电源检测 Win11怎么恢复旧版开始菜单_通过软件还原Win10风格菜单【详解】 Win10系统更新错误0x80240034怎么办 Win10更新错误解决法【方法】 如何在 Go 结构体中正确初始化 map 字段 如何使用Golang实现错误包装与传递_Golangfmt.Errorf%w使用实践 Win10怎样安装PPT模板_Win10安装PPT模板教程【步骤】 Windows10如何更改计算机工作组_Win10系统属性修改Workgroup Win11如何设置自动关机 Win11定时关机命令使用教程【技巧】 Windows10任务栏图标变成白色文件_Win10重建图标缓存修复方法 Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言 Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】 如何使用Golang table-driven基准测试_多组数据测量函数效率 Win11如何设置环境变量 Win11添加和修改系统与用户变量【教程】 Win11怎么更改鼠标指针方案_Windows11自定义鼠标光标样式与大小 Win11怎么清理C盘虚拟内存_Win11清理虚拟内存设置【教程】 C#如何使用Channel C#通道实现异步通信 Windows服务启动类型恢复方法_错误修改导致的系统服务异常 mac怎么分屏_MAC双屏显示与分屏操作技巧【指南】 Mac如何开启夜览模式_Mac护眼模式设置与定时 Win10怎么查看内存时序参数_Win10CPU-Z或Thaiphoon读取颗粒详细信息【查询】 如何在Golang中验证模块完整性_Golanggo.sum校验与安全实践 Win11怎么设置开机问候语_自定义Win11锁屏提示信息【技巧】 Win11怎么设置默认图片查看器_Windows11照片应用关联设置 如何正确访问 Laravel 模型或对象的属性而非调用不存在的方法 如何在 Go 中正确反序列化多个并列的 XML 元素(而非 XML 数组)
赣ICP备2024031479号