0

コンソールを開いた状態で、以下のコードを見てください。コンソールに記録された少数のノードがあります。

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たくさんの項目を実行するべきではありませんか?

4

1 に答える 1

1

これらは 2 つの異なる環境です。stackoverflow のエディターからスクリプトを実行document.body.childNodes.lengthしてから、サイトのコンソールで実行しています。stackoverflow のエディターは、最小限のコードで iframe に制限されています。このスクリプトを実行した後にコンソールを開いて出力を表示すると、23 ではなく 2 かそこらであることがわかります (document.body.childNodes.length私のコンソールで SO を実行すると 25 になりました)。

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

于 2015-02-27T21:23:59.527 に答える