Я новичок в 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
структура петли тоже не помогает.
Переменные слайды действуют действительно недетерминированно, на каждой итерации они дико меняют длину и порядок элементов.
Как правильно перебирать NodeList в моем случае? Я думал о заполнении временного массива, но не знаю, как это сделать ...
РЕДАКТИРОВАТЬ:
Важный факт, который я забыл упомянуть, - это то, что один слайд может быть внутри другого, это на самом деле то, что меняет slides
переменную, как я только что узнал благодаря пользователю Alohci .
Решение для меня заключалось в том, чтобы сначала клонировать каждый элемент в массив, а затем передавать массив по очереди Distribute()
.