Рекурсировать по дочерним узлам

Посмотрите на код ниже, с открытой консолью. Есть несколько узлов, зарегистрированных на консоли.

function recurseChildren(element) {
  var children = element.childNodes,
    length = children.length;

  if (length) {
    for (var i = 0; i < length; i++) {
      console.dir(children[i]);
      recurseChildren(children[i]);
    }
  }
}

recurseChildren(document.body);

Затем запустите это в консоли: document.body.childNodes.length;

Там 23 зарегистрировано в этой точке.

Не должен recurseChildren() функция сделать console.dir из всего множества предметов?

1 ответ

Решение

Это две разные среды. Вы запускаете скрипт из редактора stackru, а затем запускаете document.body.childNodes.length в вашей консоли для сайта. Редактор stackru ограничен iframe с минимальным кодом. Если после запуска этого скрипта вы откроете консоль и увидите вывод, вы заметите, что это не 23, а 2 или около того document.body.childNodes.length в моей консоли для ТАК дал мне 25).

console.log(document.body.childNodes.length);
document.write('total nodes in this iframe: ' + document.body.childNodes.length);

Другие вопросы по тегам