Jestem trochę zmieszany działaniem tych metod. Zwracają one obiekt, ale dlaczego gdy zastosuje document.getElementsByClassName('klasa') to żeby dobrać się do elementu x muszę zadziałać podobnie jak w przypadku zwykłej tablicy czyli [0..1..2], a gdy np. zrobie document.getElementsByTagName('div'), to te które mają id będą dotępne na zasadzie .element, a te co mają klasę na zasadzie [0..1..2]. Dlaczego gdy zrobie console.log to wygląda na to, że mogę dostać się do tych [0..1..2] za pomocą .0 .1 (troche to glupio wyglda), ale nie mogę przeżyć takiego zapisu 0: div.klasaA 1: div.klasaB (chodzi o ':')

Jeżeli zastosuję .getElementsByClassName i chcę dodać do każdego powiedzmy jakąś klasę (albo bardziej ogólnie, po prostu przejść przez wszystkie elementy), to powinienem zastosować pętlę for (bo przecież są te [0..1..2]), czy for in? W drugiej jest delikatny problem, ponieważ hasOwnProperty nie ocali mnie od .length.