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