Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Проблема с заменой элементов (https://javascript.ru/forum/misc/24802-problema-s-zamenojj-ehlementov.html)

Solovei95 14.01.2012 15:41

Проблема с заменой элементов
 
Скажите, почему так происходит: пропускает элементы.
for(var i=0;i<document.images.length;i++){
  var canvas = document.createElements("canvas");
  ...
  document.images[i].parentNode.replaceChild(canvas,document.images[i]); //Большая трабла - пропускает элементы.
}


Но когда добавляю i-- то нормально работает. Это только при синхронном методе.

Solovei95 14.01.2012 15:46

Все решил проблему, добавил i-- в конце цикла. Но вы можете объяснить, почему так происходит?
Дует каждый второй элемент при синхронном замене элементов?

Livaanderiamarum 14.01.2012 15:54

могу но много кода, лень читать

Solovei95 14.01.2012 16:02

Теперь поможешь?

рони 14.01.2012 19:14

Solovei95,
Потому что document.images живая коллекция, было для примера элементы [0],[1],[2] - нулевой перезаписали - стало [0],[1] -- которые прежде были 1 и 2 -- а i уже 1 - поэтому перезапишеться второй элемент и т.д. идя снизу порядок оставшихся ненарушается
можно ещё в вашем случае перезаписывать нулевой пока он есть


Часовой пояс GMT +3, время: 06:44.