Показать сообщение отдельно
  #4 (permalink)  
Старый 23.05.2012, 09:25
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

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

так что скопируйте elems в обычный массив, прежде чем делать такие операции, либо попробуйте применить forEach из прототипа массивов, хотя может и не удастся(зачеркнутый вариант оказался нерабочим, как я и думал)

Последний раз редактировалось Gvozd, 23.05.2012 в 09:29.
Ответить с цитированием