循环遍历节点列表 JS

2024-04-14

我的问题是:我正在尝试通过 Hot 类的 NODELIST 。我想将他们的 className 更改为 'cool' 。当我使用 for 循环时,它的第二个 li 似乎没有改变颜色。有谁知道我在这里犯了什么错误,第二个 li 元素没有改变颜色。

谢谢

var elements = document.getElementsByClassName('hot');
var i;

for(i = 0; i < elements.length; i++) { 
  elements[i].className = 'cool';
}
*{
  box-sizing: border-box;
}
.hot {
  background-color: red;
  border: 1px solid black;
  padding: 10px;
  margin-top: 1px;
  font-size: 25px;
  list-style-type: none;
}

.cool {
  background-color: blue;
  padding: 10px;
  color: white;
  font-size: 25px;
}
<html>
  <body>
   <div id="page">
      <h1 id="header">List</h1>
      <h2>Buy Greoceries</h2>
      <ul>
         <li id="one" class="hot"><em>Fresh</em>figs</li>
         <li id="two" class="hot">pine nuts</li>
         <li id="three" class="hot">honey</li>
         <li id="four">balsamic vinegear</li>
     </ul>
   </div> 
  </body>
</html>

getElementsByClassName返回活动节点列表。一旦您更改了一个元素上的类,节点列表就会更新以反映这一点,因此您的索引将始终消失。

缓解这种情况的一种方法是将节点列表转换为静态节点列表,使用Array.slice.call:

var elements = [].slice.call(document.getElementsByClassName('hot'));

DEMO https://jsfiddle.net/9t271v2b/1/

正如您所指出的,另一种方法是使用document.querySelectorAll它返回一个静态节点列表:

document.querySelectorAll('.hot');

DEMO https://jsfiddle.net/9t271v2b/2/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环遍历节点列表 JS 的相关文章

  • 用于自由形式绘图的 javascript 库

    是否有一个 JavaScript 库可以让我在网页上绘图 然后保存该绘图的状态 我想使用鼠标绘制 2D 图像 然后如何存储和加载该绘图 使用 HTML5 画布 绘制图像的简单示例如下 http jsfiddle net ghostoy wT
  • 使用 Moment.js 从 ISO 字符串中提取 utcOffset

    使用 moment js 我尝试从 ISO 日期字符串中提取偏移量 以便稍后在格式化纪元时间戳时使用该偏移量 以确保时间戳的转换位于同一时区 即使字符串中的偏移量为 0400 结果始终为0 var currentTime 2015 03 1
  • 检测 JavaScript 版本

    如何检测浏览器支持的 JavaScript 版本 如果有 我想检查 ECMAScript 3 ECMAScript 5 和 ECMAScript 6 注意 我想避免已弃用的language tag 这里有一个很好的参考给你 http www
  • Android键盘点击搜索输入时出现和消失

    我在用谷歌地图 Js API当我搜索一个地方时 我的输入搜索栏工作正常 当我通过 iPhone 设备使用它时 它也工作得很好 但是当我通过Android 设备然后键盘立即出现和消失 我已经找到了一些关于当我按下搜索栏时 android 键盘
  • 在 angularJS 中覆盖模块值/常量的最佳方法

    我用 angularJS 编写了一个模块 封装了所有后端通信 为了获得更大的灵活性 我将 api 前缀作为模块上的常量值 可能是值 因为我没有在配置阶段使用它 所以像 angular module myapp data constant a
  • 任何 JavaScript 代码都是有效的 TypeScript 代码吗?

    目前我已经开始学习TypeScript 从我研究过的文档来看TypeScript 我看到一些纯的样品JavaScript代码可以编译为TypeScript code 我的问题是 TypeScript 语言的设计方式是否使任何 JavaScr
  • 为 Promise 编写循环的正确方法。

    如何正确构造循环以确保满足以下条件承诺电话和被束缚的记录器 log res 通过迭代同步运行 蓝鸟 db getUser email then function res logger log res this is a promise 我尝
  • 将整个网页设计为 SVG 文件

    免责声明 我意识到鉴于标题的荒谬 这听起来像一个巨魔 然而 这是一个真正的问题 我的背景涉及OpenGL x86 汇编 我最近开始学习网络编程 我真的很喜欢 SVG CSS 并且想知道 为什么人们不使用 SVG 设计整个网页 Context
  • 如何从矩形点计算旋转角度?

    我有4分1 2 3 4闭合一个矩形 这些点按以下方式排列在数组中 x1 y1 x2 y2 x3 y3 x4 y4 我遇到的问题是矩形可以旋转一定角度 如何计算原始点 灰色轮廓 和角度 我试图在 javascript css3 transfo
  • 在文档片段中查找注释或文本节点

    我必须清理 Nokogiri HTML DocumentFragment 文档 删除仅包含空格的注释节点和文本节点 这是一个例子 html p paragraph p p paragraph p p paragraph p doc Noko
  • 使用 ngx-translate 时更改 URL

    当有人使用 ngx translate 单击所选语言时 我尝试更改 URL 我想我应该通过订阅语言更改事件然后修改当前的 url 以反映所选的语言来做到这一点 因为我是新手 所以我不确定是否需要服务来做到这一点 或者可能是另一种解决方法 我
  • charset-utf8 和字符实体

    我建议将我的 windows 1252 XHTML 网页转换为 UTF 8 我的编码中有以下字符实体 39 撇号 9658 右指针 9668 左指针 如果我使用编辑器更改字符集并将页面保存为 UTF 8 撇号保留为字符实体 指针被转换为代码
  • js中将div旋转到一定高度

    How to rotate a div to certain height suppose 10px I can rotate a div otherwise around 360 degrees I need the angle by w
  • 同源政策目的可疑

    正如我所读到的 同源策略是防止源自 邪恶 域 A 的脚本向 良好 域 B 发出请求 换句话说 跨站点请求伪造 玩了一下我了解到的Access Control Allow Origin标头和CORS据我了解 它允许从好域 B 指定服务器 域
  • 检测浏览器是否支持 contentEditable?

    There s 这个问题 https stackoverflow com questions 3497942 browser detect contenteditable features 但发布的解决方案是浏览器嗅探 我试图避免这种情况
  • 插入四个空格而不是制表符

    我试图在按下 Tab 键时插入四个空格 我正在使用以下代码 请参阅spaces t 但是当我将其切换到spaces 当我按 Tab 时只插入一个空格 我还尝试了 function textarea keydown function e va
  • 在 Javascript 中使用 fetch API 接收和处理 JSON

    在我的项目中 当条件不足时 我的 Django 应用程序会发送带有消息的 JSON 响应 我使用这个 JsonResponse 指令 Code data is taken email email return JsonResponse da
  • 来自 ajax 的 Bootstrap 表 json

    我有 ajax 和 bootstrap 表的问题 我有一个 ajax JSON 我用这个方法调用 document ready function ajax url php process php method fetchdata dataT
  • 使用 Google Visualization,为什么 DataView 内容显示在 ChartRangeFilter 中,而不显示在其关联的 LineChart 中?

    下面的代码应该从 CSV 文件填充 DataView 然后 DataView 被输入到 DashBoard 其中包含绑定在一起的 LineChart 和 ChartRangeFilter 我的问题是 虽然 ChartRangeFilter
  • 为什么插入符号在具有position:relative的contenteditable中不可见?

    When a contenteditable元素有position relative和背景颜色 插入符号放置在该元素中时是不可见的 这是一个例子 bug position relative background color lightgre

随机推荐

  • 视图隐藏在 UINavigationBar iOS 7 下面

    早些时候 我的项目使用的是 iOS 6 1 最近我已经切换到 iOS 7 对于我知道的很多更改 我更新了我的代码 但是我观察到了一个奇怪的行为 我在每个屏幕上的视图都隐藏在导航栏下方 重新定位视图解决了 iOS7 的问题 但为旧版 iOS
  • App Engine Python:AttributeError:“模块”对象没有属性“Stock”

    我只是在生产中遇到此错误 在本地主机上它运行良好 Traceback most recent call last File base python runtime python lib versions 1 google appengine
  • 在 JS/jQuery 中绑定方向键

    如何在 Javascript 和 或 jQuery 中将函数绑定到左右箭头键 我查看了 jQuery 的 js hotkey 插件 包装内置绑定函数以添加参数来识别特定键 但它似乎不支持箭头键 document onkeydown func
  • Node.js SOAP 客户端参数格式

    我在使用 Node js 的 Node soap 模块作为客户端将某个特定的 Soap 参数正确格式化为第 3 方 SOAP 服务时遇到问题 此方法的 client describe 表示此特定输入应采用以下形式 params param
  • 在 PHPExcel 中复制样式和数据

    我想将某个范围的所有数据和样式复制到其他单元格 例如我想从 A4 I15 复制 然后完全粘贴我想要从 A16 复制的内容和样式 我该怎么做 这就是我要复制的内容 我知道只复制数据而不复制样式 并使用以下代码执行此操作 cellValues
  • 从 Maven 设置 TestNG 的详细级别

    当我运行测试时 我讨厌盯着闪烁的光标而不知道正在运行什么 为了解决这个问题 我在所有测试中添加了完成消息 然而我意识到这是一个非常老套的解决方案并且增加了一些废话 假设TestNG的详细级别打印测试描述 我如何在Maven中设置详细级别 请
  • 查找出现次数最多的单词

    搜索文档中出现次数最多的单词的最佳方法 算法 是什么 查找文档中出现次数最多的单词可以通过简单的 O n 时间复杂度完成直方图 http en wikipedia org wiki Histogram 基于哈希 histogram lt n
  • 正则表达式在特定单词模式处分割字符串

    我正在尝试拆分一个可能如下所示的字符串 International Bank for Reconstruction Development NAICS 928120 SIC 6081 World Bank NAICS 928120 SIC
  • 在接到电话时将应用程序置于最前面

    当我接到电话时 我想将我的应用程序带到电话接听屏幕前面 我在接到电话后完成了所有编码部分 但该应用程序并没有出现在前面 它刚刚打开并停留在电话应答屏幕下方 我想将我的应用程序带到此屏幕前面 我做了如下的事情 Intent i new Int
  • 如何在 Swift 3 中为在 for 循环期间修改的数组编写 for 循环?

    所以 我有一个与此类似的 for 循环 for var i 0 i lt results count i 1 if results i lt 5 results removeAtIndex i i 1 这曾经有效 但是当我将其更改为首选 S
  • 什么是 CLR 类?

    我在 google 上搜索了 CLR 并从 wikipedia 找到了它是什么 但我想知道 CLR 类或更具体地说 CLR 实体类型是什么 尤其是在 ASP NET 中 CLR 不是类 公共语言运行时 CLR 是 Microsoft NET
  • Blob.generate_signed_url() 失败 AttributeError

    因此 我尝试使用以下方法为我的 Google Cloud Storage 对象生成临时的全局可读 URLgoogle cloud storagePython 库 https googlecloudplatform github io goo
  • CSS“ch”单元的意外行为

    我正在使用ch用于指定宽度的 CSS 单位div包含文本 我使用的是等宽字体 但是 如果我设置width 80ch 我第一个得到 80 个字符n行 其中n始终是 24 不确定这是否重要 但从那时起只有 79 个字符 这如下面的屏幕截图所示
  • PyCharm 和 reStructuredText (Sphinx) 文档弹出窗口

    让我们想象一下 我想看到一个简单方法的文档字符串弹出窗口PyCharm4 5 社区版 也在 5 0 中尝试过 我在两个文件中都写下了这些文档字符串epytext语法 自 2008 年起不再支持 Epydoc 生成器 并且仅适用于 Pytho
  • 无法以编程方式减小 gtk 窗口的大小

    以编程方式调整 gtk 窗口大小时 我似乎遇到了问题 问题是 一旦我将窗口的宽度和高度增加到 800x600 我似乎无法将其缩小回原来的大小 400x200 下面是示例代码 有人遇到过这样的问题吗 include
  • Selenium IDE - 导出测试脚本

    我正在尝试导出在 Selenium IDE 中创建的测试自动化 但找不到导出选项 我有一些测试场景 其中测试是相同的 但我需要复制现有测试并交换一些 ID 才能使其正常工作 我只能将其保存为 side 文件 而不能保存为 Selenium
  • glutTimerFunc问题

    I use Glut制作一个简单的动画 在主函数中 glutTimerFunc TIMERMSECS animate 0 叫做 这两段代码生成相同的图形 const int TIMERMSECS 20 float animation tim
  • 删除android进度条中的进度条背景

    如何去掉灰色背景 只在进度条中显示蓝色进度条 我已经回答过一个有类似要求的问题 Result 要删除它 简单地通过 id 搜索背景并尝试隐藏它是行不通的 要删除背景 我必须创建与系统版本相同的绘图并删除背景项目 TL DR 创建文件prog
  • 如何确保 Data.Vector 的摊销 O(n) 级联?

    我有一个应用程序 在其中使用向量作为代码的一部分是有效的 然而 在计算过程中我需要跟踪一些元素 我听说你可以从 Data Vectors 获得 O n 摊销串联 通过通常的数组增长技巧 但我认为我做得不对 假设我们有以下设置 import
  • 循环遍历节点列表 JS

    我的问题是 我正在尝试通过 Hot 类的 NODELIST 我想将他们的 className 更改为 cool 当我使用 for 循环时 它的第二个 li 似乎没有改变颜色 有谁知道我在这里犯了什么错误 第二个 li 元素没有改变颜色 谢谢