我是 Javascript 初学者。
我正在通过 初始化网页window.onload
,我必须通过它们的类名 ( slide
)找到一堆元素,并根据某些逻辑将它们重新分配到不同的节点。我有一个函数Distribute(element)
,它将一个元素作为输入并进行分布。我想做这样的事情(如此处或此处所述):
var slides = getElementsByClassName("slide");
for(var i = 0; i < slides.length; i++)
{
Distribute(slides[i]);
}
然而,这对我来说并没有什么神奇之处,因为getElementsByClassName
实际上并没有返回数组,而是 a NodeList
,它是......
……这是我的猜测……
...在函数内部被改变Distribute
(DOM 树在这个函数内部被改变,并且发生了某些节点的克隆)。For-each
循环结构也无济于事。
变量 slides 的行为确实不确定,通过每次迭代它都会疯狂地改变它的长度和元素的顺序。
在我的情况下,迭代 NodeList 的正确方法是什么?我正在考虑填充一些临时数组,但不知道该怎么做...
编辑:
我忘记提及的一个重要事实是,另一张幻灯片中可能有一张幻灯片,这实际上是改变slides
变量的原因,因为我刚刚发现感谢用户Alohci。
对我来说,解决方案是先将每个元素克隆到一个数组中,然后将数组逐个传入Distribute()
。