递归childNodes

时间:2015-02-27 21:12:43

标签: javascript nodelist child-nodes

在控制台打开的情况下,查看下面的代码。有几个节点登录到控制台。



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);
&#13;
&#13;
&#13;

然后在控制台中运行:document.body.childNodes.length;

此时已经记录了23个。

recurseChildren()函数不应该执行大量项目的console.dir吗?

1 个答案:

答案 0 :(得分:1)

这是两种不同的环境。您从stackoverflow的编辑器运行脚本,然后在控制台中为该站点运行document.body.childNodes.length。 stackoverflow的编辑器被限制为使用最少代码的iframe。如果您在运行此脚本后打开控制台并查看输出,您会注意到它不是23但是2或左右(在我的控制台中为SO运行document.body.childNodes.length给了我25个。) / p>

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