Показать сообщение отдельно
  #1 (permalink)  
Старый 19.01.2015, 16:01
Интересующийся
Отправить личное сообщение для ssadfaf Посмотреть профиль Найти все сообщения от ssadfaf
 
Регистрация: 28.12.2014
Сообщений: 20

Функция 'забывает', из какого места она вызвана
Из одной функции вызываю вторую, которая, при наличии вложений, должна вызывать саму себя с новыми аргументами.
function parseDrawnTreeElems(ContainerParId) {
// бла бла 
for (var i=0; i<window.document.getElementById(ContainerParId).children.length; i++) {
parseDrawnTreeElems(window.document.getElementById(ContainerParId).children[i].id);	
}

Всё работает нормально, пока цикл спускается 'лесенкой' без пропусков по вложениям первой ноды, однако, как только встречается нода без детей и цикл не запускается, она прекращает своё выполнение полностью.
Я предполагал, что она должна вернуться туда, откуда была запущена и продолжить со следуюущей ноды на том уровне, где была вызвана.

Интересно, что аналогичная конструкция с циклом for.. in (по свойствам объектов) у меня работает корректно, а тут я упускаю что-то важное. Киньте хоть ссылку, пожалуйста, а то моего словарного запаса не хватает, чтобы гугл ответил что-нибудь внятное. Такое ощущение, что уже где-то читал об этом, но все мои поисковые запросы ведут в никуда.
Ответить с цитированием