Ich habe die folgenden Codes geschrieben. Der Zweck dieser Codes ist es, eine <ul>
von einigen Javascript-Node-Objekten:
<html>
<body>
<div id='content'></div>
<script type='text/javascript'>
function node(name,parent){
this.name=name;
this.parent=parent;
this.level=function(){
if(this.parent==null)
return 0;
return this.parent.level()+1;
}
this.childs=new Array();
}
//create a rootNode, having no parent
var rootNode=new node('AAA',null);
//create node1 and add it to the child of rootNode
var node1=new node('BBB',rootNode);
rootNode.childs.push(node1);
//create node2 and add it to the child of rootNode
var node2=new node('CCC',rootNode);
rootNode.childs.push(node2);
//create node3 and add it to the child of node1
var node3=new node('DDD',node1);
node1.childs.push(node3);
//create node4 and add it to the child of node1
var node4=new node('EEE',node1);
node1.childs.push(node4);
//create node5 and add it to the child of node2
var node5=new node('FFF',node2);
node2.childs.push(node5);
function getTreeHTML(node,html){
if(node.level()==0)
html+='<ul>';
html+='<li>';
html+=node.name;
if(node.childs.length > 0){
html+='<ul>';
for(var i in node.childs){
html+=getTreeHTML(node.childs[i],html);
}
html+='</ul>';
}
html+='</li>';
if(node.level()==0)
html+='</ul>';
return html;
}
var treeHTML=getTreeHTML(rootNode,'');
document.getElementById('content').innerHTML=treeHTML;
</script>
</body>
</html>
Unter rootNode gibt es zwei unmittelbare Kindknoten, für diese beiden Kindknoten sollte einer von ihnen zwei Kinder Kinder und ein anderer sollte ein Kind haben. Ich vermute, dass es einen logischen Fehler in der getTreeHTML()
Funktion, aber ich kann einfach nicht herausfinden, was es ist, können Sie die Codes auf http://htmledit.squarefree.com/ dann können Sie schnell sehen, was ich meine.
Vielen Dank an Sie alle.