打开控制台,看看下面的代码。有少数节点已记录到控制台。
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/