А теперь расскажу почему так происходит
document.getElementsByClassName() возвращает вовсе не массив
document.getElementsByClassName() возвращает DonNodeList (может называтся в браузерах по-другому но суть именно такая)
Он выглядит как обычный массив, но не является обычным массивом.
В данном случае это можно назвать "живым массивом"
А именно, если вы выполните document.getElementsByClassName() И запомните его результат
Если в момент выполнения было допустим три элемента с данным классом, а через некоторое время с таким классом уже 10 объектов, то все 10 автоматически окажутся в изначально запомненном объекте
А если вы наоборот удалите один из них, то он исчезнет и из запомненного элемента
В данном конкретном примере просиходит следующее:
1) вы берете нулевой элемент, и меняете ему класс
2) в "живом массиве" HiddenLetter теперь уже не два элемента, а только один, а значит и HiddenLetter.length == 1
3) раз i == 1 и HiddenLetter.length == 1 (а значит в HiddenLetter больше нету элементов), то цикл завершается.
В цикле был перебран только один элемент
|