效果
food
fruit
Red
Cherry
Yellow
Banana
Meat
Beef
Pork
Tree hierarchy: (在 IE 下不能正常運行)
JS code
<script language="javascript"> <!-- var $ = function(_id) {return document.getElementById(_id);}; function Node(nodeName,nodeParentID, indentNum){ this.nodeName = nodeName; this.nodeParentID = nodeParentID; this.childNodes = []; this.add=function(node){ this.childNodes[this.childNodes.length] = node; }; } function createTree(){ var dataAry = [ /*0*/ ["root"-1], /*1*/ ["food",0], /*2*/ ["fruit",1], /*3*/ ["Meat",1], /*4*/ ["Red",2], /*5*/ ["Yellow",2], /*6*/ ["Cherry",4], /*7*/ ["Banana",5], /*8*/ ["Beef",3], /*9*/ ["Pork",3] ]; var tmpAry=[]; for(var i=0;i<dataAry.length;i++){ tmpAry[tmpAry.length]= new Node(dataAry[i][0], dataAry[i][1]); } for(var i=1;i<tmpAry.length;i++){ var parentIdx = dataAry[i][1]; tmpAry[parentIdx].add(tmpAry[i]); } return tmpAry[0]; } var debugtxt = []; function debug(msg){ debugtxt[debugtxt.length] = msg; } function walkTree(aTreeNode, indent){ for(var i=0;i<aTreeNode.childNodes.length;i++){ debug(indent + aTreeNode.childNodes[i].nodeName + "<br/>"); var subNodes = aTreeNode.childNodes[i].childNodes; if (subNodes.length>0) { walkTree(aTreeNode.childNodes[i], " " + indent); } } } var treeRoot=null; function printHierarchy(){ debugtxt = []; treeRoot = createTree(); walkTree(treeRoot, ""); $("tree1").innerHTML = debugtxt.join(""); } function clearHierarchy(){ $("tree1").innerHTML = ""; } //--> </script>
html code
Tree hierarchy: <br> <input type="button" onClick="printHierarchy();" value="Print hierarchy"> <input type="button" onClick="clearHierarchy();" value="Clear data"> <div id="tree1"></div>延伸閱讀:
google 搜索 樹狀結構
php實現樹狀結構無級分類
沒有留言:
張貼留言