效果
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實現樹狀結構無級分類
沒有留言:
張貼留言