日期:2014-05-16  浏览次数:20440 次

我是不是写成死循环了??
function printNodeInfo(node,level)
{
//var totalStr=getSpace(level);
var totalStr="";
totalStr+=node.nodeName+"....."+node.nodeType+"....."+node.nodeValue+"......<br/>";
document.write(totalStr);
}
function listNodes(node,level)
{
printNodeInfo(node,level);
var child=node.childNodes;
for(var x=0;x<child.length;x++)
{
if(child[x].hasChildNodes())
listNodes(child[x],level);
else
printNodeInfo(child[x],level);
}
}
function getSpace(level)
{
  var s="";
level++;
for(var x=0;x<level;x++)
s+="---";
return s;
}
function init()
{
listNodes(document,0);
}
</script>
javascript的部分

------解决方案--------------------
该递归有出口条件,
不会陷入无限递归
但是document.write句不行,会使页面内容遭受破坏
请写一个标签来输出内容,用innerHTML,不要用document.write

------解决方案--------------------
探讨
该递归有出口条件,
不会陷入无限递归
但是document.write句不行,会使页面内容遭受破坏
请写一个标签来输出内容,用innerHTML,不要用document.write

------解决方案--------------------
探讨
引用:
该递归有出口条件,
不会陷入无限递归
但是document.write句不行,会使页面内容遭受破坏
请写一个标签来输出内容,用innerHTML,不要用document.write

+1

------解决方案--------------------
探讨
引用:
引用:
该递归有出口条件,
不会陷入无限递归
但是document.write句不行,会使页面内容遭受破坏
请写一个标签来输出内容,用innerHTML,不要用document.write

+1

看排行榜没?恭喜web版第一

------解决方案--------------------
你这样用document.write会清空当前页面所有的内容。只保留你此次输出

你自己执行后看右键看一下页面的源文件就知道了

你可以直接innerHTML追加进某一个标签内,又或者将字符串进行累加,完整后再一次性的innerHTML到某个标签内去