热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

for循环不处理getElementsByClassName找到的每个元素

我在index.html中有一个带有按钮的面板:<div><imgsrc=icons/trash.svg>

我在 index.html 中有一个带有按钮的面板:













和风格:

.toolsPanelHiddenButton {
display: none;
}

我需要用“toolsPanelActiveButton”类隐藏每个按钮。如果我使用这样的代码

var elems = document.getElementsByClassName('toolsPanelActiveButton');
for (let elem of elems) {
elem.className="toolsPanelHiddenButton";
}

我只隐藏了一半的元素:

隐藏所选类的每个元素的正确方法是什么?

我希望在使用 for 循环后有空面板。

回答

正确的方法是使用 a 进行迭代while

var elems = document.getElementsByClassName('toolsPanelActiveButton');
while (elems.length) {
elems[0].className = "toolsPanelHiddenButton";
}

为什么?因为它是一个活跃的节点列表,你从中获取.getElementsByClassName()。这意味着当您删除旧类时,该元素不再在列表中。

另一种解决方案是使用.querySelectorAll(),因为它返回一个非活动节点列表:

var elems = document.querySelectorAll('.toolsPanelActiveButton');
for (let elem of elems) {
elem.className="toolsPanelHiddenButton";
}

另外,为了完整性,我认为像这样直接更新整个类列表(即 setting .className)是一种脆弱的编程实践。通常,不相关的页面功能可能希望共享页面上元素的类列表。如果一个特性在整个类列表中被踩到了,那么这样的特性就不可能实现。现代浏览器具有.classList带有方便 API的对象。






推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • JavaScript和HTML之间的交互是经由过程事宜完成的。事宜:文档或浏览器窗口中发作的一些特定的交互霎时。能够运用侦听器(或处置惩罚递次来预订事宜),以便事宜发作时实行相应的 ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • 本文介绍了在Ubuntu 11.10 x64环境下安装Android开发环境的步骤,并提供了解决常见问题的方法。其中包括安装Eclipse的ADT插件、解决缺少GEF插件的问题以及解决无法找到'userdata.img'文件的问题。此外,还提供了相关插件和系统镜像的下载链接。 ... [详细]
  • 初识java关于JDK、JRE、JVM 了解一下 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了css回到顶部按钮相关的知识,希望对你有一定的参考价值。 ... [详细]
  • higuysihaveproblemwithtreeshakinginnx,problemwithassetslibrary ... [详细]
  • 本文实例为大家分享了d3.js图形拖拽的具体代码,供大家参考,具体内容如下 ... [详细]
  • webui之常用js操作(webui界面是什么)
    本文目录一览:1、web前端开发需要掌握的几个必备技术 ... [详细]
author-avatar
Healthcen健康
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有