Jestem początkującym użytkownikiem Javascript.
Inicjuję stronę internetową za pośrednictwem window.onload
, muszę znaleźć grupę elementów według nazwy ich klasy ( slide
) i ponownie rozdzielić je na różne węzły w oparciu o jakąś logikę. Mam funkcję, Distribute(element)
która przyjmuje element jako dane wejściowe i wykonuje dystrybucję. Chcę zrobić coś takiego (jak opisano na przykład tutaj lub tutaj ):
var slides = getElementsByClassName("slide");
for(var i = 0; i < slides.length; i++)
{
Distribute(slides[i]);
}
jednak nie robi to dla mnie magii, ponieważ getElementsByClassName
tak naprawdę nie zwraca tablicy, ale a NodeList
, czyli ...
... to moja spekulacja ...
... zmieniane wewnątrz funkcji Distribute
(drzewo DOM jest zmieniane wewnątrz tej funkcji i zachodzi klonowanie niektórych węzłów). For-each
struktura pętli też nie pomaga.
Zmienne slajdy działają naprawdę nieokreślonistycznie, przez każdą iterację gwałtownie zmienia swoją długość i kolejność elementów.
Jaki jest właściwy sposób iteracji przez NodeList w moim przypadku? Myślałem o wypełnieniu tymczasowej tablicy, ale nie jestem pewien, jak to zrobić ...
EDYTOWAĆ:
Ważnym faktem, o którym zapomniałem wspomnieć, jest to, że jeden slajd może znajdować się wewnątrz drugiego, tak naprawdę zmienia slides
zmienną, o czym właśnie dowiedziałem się dzięki użytkownikowi Alohci .
Rozwiązaniem dla mnie było najpierw sklonowanie każdego elementu do tablicy, a następnie przekazanie tablicy on-by-one Distribute()
.