javascript - 递归子节点

标签 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);

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

此时已记录 23 个。

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

最佳答案

这是两个不同的环境。您从 stackoverflow 的编辑器运行脚本,然后在站点的控制台中运行 document.body.childNodes.length。 stackoverflow 的编辑器仅限于具有最少代码的 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);

关于javascript - 递归子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28774368/

相关文章:

javascript - 向下/向上滚动时逐渐出现/淡出 HTML 元素

javascript - CasperJS 在 NodeList 中返回 null 元素

javascript - 理解js中appendChild与 `this`的使用相关

javascript - 持续从 XML 节点获取文本

javascript - node.js 集群、redis、单线程和非阻塞 i/o 是如何工作的?

javascript - 切换菜单,但也允许在不关闭的情况下单击内部

javascript - Highcharts 图例标题水平对齐

java - 从解析的 XML 文档返回 NodeList 的字符串值

javascript - 获取大型列表中元素的值