小小思考了一下, zhaoxiaoyang(梅雪香@深圳) 的方法大概不行.
如果有多个子节点, 不是空格*n, 返回父节点, 空格=空格-1/n.
这样应该不准了.

解决方案 »

  1.   

    找本<<Javascript权威指南>>,递归的去遍历每个结点:"检查结点类型,是否有子结点",再作后续处理
      

  2.   

    唉, 楼上的大家, 如果我对递归没理解错, 用递归根本不可能实现我想要的结果. 
    现在我在找寻另一条解决该问题的方法, 基本上差不多了, 还差一点递归的判断...喏, 就是下面代码
    ---------------------------
    <script type="text/javascript">
    //<![CDATA[
    var num=[2,6,0,0,0,0,0,6,1,2,0,1,2,0,1,3,1,1,1,1]
    var name='HTML,HEAD,TITLE,META,STYLE,SCRIPT,SCRIPT,BODY,A,DL,DD,DT,DL,DD,DT,DIV,LABEL,DIV,P,BIG'.split(',')

    var count=1;
    var temp=0;
    var temp_=0
    var temp__=0;

    if(num[0]>0){
    document.write(name[0],'<br/>');
    for(var i=0; i<num[0]; i++){
    ++i;
    document.write('-',name[i],'<br/>');
    temp=i+num[i]
    for(j=i+1; j<temp; j++){
    document.write('--',name[j],'<br/>');
    }
    document.write('-',name[temp],'<br/>');
    for(j=temp+2; j<temp+num[temp]; j++){
    if(num[j]>0)temp_+=num[j]+1
    }
    for(j=temp+1; j<temp+num[temp]+temp_; j++){
    if(j<num.length){
    if(num[j]>1){
    temp__=0;
    temp__=j+num[j]+1
    for(k=j; k<temp__; k++){
    document.write(name[k],'<br/>');
    }
    j=j+num[j]
    } else {
    document.write('--',name[j],'<br/>');
    }
    }
    }
    }
    document.write('<p/>');
    }
    //]]>
    </script>