var str = "";
function listNode(node,level)
{
printInfo(node,level);
level++;
var nodes = node.childNodes;
for(var x=0; x<nodes.length; x++)
{
if(nodes[x].hasChildNodes())
listNode(nodes[x],level);
else
printInfo(nodes[x],level);
}
}
function getSpace(level)
{
//alert(level);
var s = "";

for(var x=0;x <level; x++)
{
s += "|----";
}
return s;
}
function printInfo(node,level)
{
str +=getSpace(level)+"name:"+node.nodeName+".....type:"+node.nodeType+"....value:"+node.nodeValue+"<br/>";
}
function getNodes()
{
listNode(document,0)
document.write(str);
}
第一个listNode()函数的for循环里的x不var定义一下就不循环了?function getSpace()里的x为什么不var定义一下可以循环。

解决方案 »

  1.   


    先看看这个代码有没有错误
    function listNode(node,level)
    {
         printInfo(node,level);
         level++;
         var nodes = node.childNodes;
         for(var x=0; x<nodes.length; x++)//nodes.length长度多少,可能是0导致没有循环
         { 
             if(nodes[x].hasChildNodes())
                 listNode(nodes[x],level);
             else
                 printInfo(nodes[x],level);
             alert(i);//看看是否循环了
          }
    }
      

  2.   

    function getSpace()里的x不是定义了么