既然已经"向下遍历"了干嘛还"横向遍历"
或者你的逻辑有问题?
你看下node的值是一直在变的~
向下遍历的while就已经把node设置成了 id="Label4"节点的最后一个节点(不管节点类型是什么), 而你下面又判断节点名称是否为"INPUT", 然后又来一横向遍历(node已经没有nextSibling了)? 
//向下遍历 
                while(node.hasChildNodes()) 
                { 
                    node=node.firstChild;//向下遍历一次 
                    treeHeight += 1; 
                    alert("b"); 
                } 
                if(node.nodeName == "INPUT") 
                { 
                    inputArray.push(node); 
//                alert(node.nodeName);//** 
                } 
              
                //横向遍历          
                while(node.nextSibling != null) 
                { 
                    node = node.nextSibling;//横向遍历一次 
                    getAllChild(node); 
aa:                    alert("c"); 
                    
                }