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

这是两种不同的环境。您正在从 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 回答