老哥们,帮忙解释一下逻辑关系,越清楚越好

Coding青天 2018-03-30 10:10:00
(function () {
var s="";
function traver(space,node) {
if(node.tagName){ // 如果存在标签名,则不是空白节点
s += space + node.tagName+ '<br/>';// 记录标签名称,以空格区分
}
var len=node.childNodes.length;//判断该节点子节点的长度
for(var i=0;i<len;i++){// 遍历该节点的子节点
traver(space +"|-",node.childNodes[i]);
}
}
traver("",document);
document.write(s);
})();
...全文
349 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Coding青天 2018-03-31
  • 打赏
  • 举报
回复
好的 谢谢已经搞懂了
Coding青天 2018-03-31
  • 打赏
  • 举报
回复
我的意思是第一次传入参数为document 打印输出结果为 |-HTML ,为什么不是HTML
天际的海浪 2018-03-31
  • 打赏
  • 举报
回复
引用 4 楼 weixin_40904712 的回复:
我的意思是第一次传入参数为document 打印输出结果为 |-HTML ,为什么不是HTML
document不是节点,没有tagName属性。 第一个输出的HTML是document.documentElement的.tagName
qq_30191473 2018-03-31
  • 打赏
  • 举报
回复
传入的document是一个对象,不是节点类型,js的document是对象,节点是需要document.documentElement获取根元素html
ifAlway 2018-03-30
  • 打赏
  • 举报
回复
这个注释 已经那么详细了。。还有什么要解释的
MY128 2018-03-30
  • 打赏
  • 举报
回复
递归就是一种自我调用的方法来实现循环,就这么简单。
MY128 2018-03-30
  • 打赏
  • 举报
回复
这个是用递归实现遍历节点,匿名函数输出结果。

87,985

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧