Das Beispiel in diesem Artikel beschreibt die Methode zur Verwendung von JavaScript zur Anzeige eines mehrstufigen Baummenüs in einer Dropdown-Liste. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Hier ist eine Demonstration der Anzeige hierarchischer Menüs in einem Dropdown-Listenfeld. Die Optionen im Dropdown-Listenfeld verwenden JS, um die Ausgabe zu steuern Sie haben einen besseren Weg, Sie können es ohne JS Display machen, das wäre das Beste, weil es etwas mühsam ist, ein solches Menü mit JS zu implementieren.
Der Screenshot des Laufeffekts sieht wie folgt aus:
Der spezifische Code lautet wie folgt:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>在下拉列表中显示的多级树形菜单</title> <meta http-equiv="content-type" content="text/html;charset=gb2312"> <script type="text/javascript"> var data =new Array(); data[0]= {id:'0',pid:'1',text:'河北'}; data[1]= {id:'1',pid:'-1',text:'中国'}; data[2]= {id:'2',pid:'6',text:'莫斯科'}; data[3]= {id:'3',pid:'0',text:'河南'}; data[4]= {id:'4',pid:'0',text:'北京'}; data[5]= {id:'5',pid:'3',text:'湖南'}; data[6]= {id:'6',pid:'-1',text:'俄罗斯'}; function TreeSelector(item,data,rootId){ this._data = data; this._item = item; this._rootId = rootId; } TreeSelector.prototype.createTree = function(){ var len =this._data.length; for( var i= 0;i<len;i++){ if ( this._data[i].pid == this._rootId){ this._item.options.add(new Option(".."+this._data[i].text,this._data[i].id)); for(var j=0;j<len;j++){ this.createSubOption(len,this._data[i],this._data[j]); } } } } TreeSelector.prototype.createSubOption = function(len,current,next){ var blank = ".."; if ( next.pid == current.id){ intLevel =0; var intlvl =this.getLevel(this._data,this._rootId,current); for(a=0;a<intlvl;a++) blank += ".."; blank += "├-"; this._item.options.add(new Option(blank + next.text,next.id)); for(var j=0;j<len;j++){ this.createSubOption(len,next,this._data[j]); } } } TreeSelector.prototype.getLevel = function(datasources,topId,currentitem){ var pid =currentitem.pid; if( pid !=topId) { for(var i =0 ;i<datasources.length;i++) { if( datasources[i].id == pid) { intLevel ++; this.getLevel(datasources,topId,datasources[i]); } } } return intLevel; } </script> </head> <body> <select id="myselect"></select> <script language=javascript type="text/javascript"> var ts = new TreeSelector(document.getElementById("myselect"),data,-1); ts.createTree(); </script> </body> </html>
Ich hoffe, dass dieser Artikel für das JavaScript-Programmierdesign aller hilfreich sein wird.