hasChildNode 打错了,是 hasChildNodes
因为打错了,所以程序报错了;既然报错,程序无法往下执行,也就进不了 else 分支 printInfo(nodess[x],level);str 是全局的
如果你想获取网页的所有标签,可以使用 document.getElementsByTagName('*')
如果你想获取具体某个标签下的所有标签,比如获取 body 下的所有子标签,可以使用 document.body.getElementsByTagName('*')
getElement 系列函数返回的都不是数组,而且每次遍历都会重新获取一下,所以建议需要遍历的时候,先转成数组;比如:
var tags = document.getElementsByTagName('*');
tags = [].slice.call(tags)
// 可以接着遍历了
1.node.hasChildNodes()才对,不是Node.
2.function getSpace(level){
var s="";
这里又定义了一次str所以你觉得不是全局的