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