递归子节点
Recurse over childNodes
在打开控制台的情况下查看下面的代码。有少数节点记录到控制台。
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
吗?
这是两种不同的环境。您是来自 Whosebug 编辑器的 运行 脚本,然后是站点控制台中的 运行 document.body.childNodes.length
。 Whosebug 的编辑器仅限于代码最少的 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);
在打开控制台的情况下查看下面的代码。有少数节点记录到控制台。
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
吗?
这是两种不同的环境。您是来自 Whosebug 编辑器的 运行 脚本,然后是站点控制台中的 运行 document.body.childNodes.length
。 Whosebug 的编辑器仅限于代码最少的 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);