Сообщение от AlexJ
|
При смене класса массив elems коверкается?
|
если вы используете встроенный в браузер document.getElementsByClassName(), то скорее всего так и есть, ведь он же возвращает NodeList, который прочно связан с DOM-деревом и изменяется вместе с ним.
В вашем случае происходит следующее:
1) вы взяли нулевой элемент NodeList, и изменили ему классю
2) так как у него теперь нету того класса, по которомы вы искали, то весь elems перестраивается: из него удаляется нулевой элемент, а все остальные смещаются влево.
3) теперь когда вы берет 1-й элемент elems, то на самом деле вы берете второй элемент от исходного массива.
так, на каждой итерации, elems уменьшается на один элемент, и вы идете только по четным элементам.
так что скопируйте elems в обычный массив, прежде чем делать такие операции, либо
попробуйте применить forEach из прототипа массивов, хотя может и не удастся(зачеркнутый вариант оказался нерабочим, как я и думал)