【发布时间】:2018-09-22 20:54:15
【问题描述】:
HTML DOM 中的 HTMLCollection 是活动的;它会在基础文档更改时自动更新。
我正在尝试为一个经常添加元素的网站编写一个简单的脚本,该脚本会根据标准对这些元素重新着色。
现在,出于性能原因,我不想让循环持续运行并检查新元素。
我将如何使用实时 HTMLcollectio 并在其中的每个元素上执行一个函数,即使是添加的新元素?
如果我能做到这一点,它应该会产生一个永远不会完成的脚本,并为所有新元素重新着色。
任何帮助表示赞赏!
【问题讨论】:
-
这不是它的工作原理。你将集合保存在一个全局变量中,每当你循环它时,它将包含当前的 DOM 元素。但是,只要集合发生变化,就不会自动执行循环。
-
这是XY problem 的一个主要示例 - 您要解决的真正问题是“更改任何符合条件的元素,即使它们是稍后添加的”,但您正在询问如何遍历 HTMLCollection。如果你能专注于问题的核心,你就能找到更好的替代方案。在我的脑海中,似乎MutationObserver 更适合。
-
@vlaz 哦,这是有道理的。并且你已经看到了建议突变观察服务器的答案,我希望我能弄清楚如何使这项工作。谢谢。
标签: javascript loops htmlcollection