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