javascript+dom树型菜单类,希望朋友们一起进步

  树菜单js网上多得是,自己写了一个树菜单类,自认为还不错,公开大家共享和探讨,和大家一起进步最快乐!!

  /*  KuoMart.com__MyKuoMart , Create By ybcola(at)163.com , 2006-7-2

  Last Modified 2006-7-2 , [email protected] */

  <!--

  function Dtree(){

  this.MenuGroupClose="images/treeview_close.gif"; //菜单关闭图标

  this.MenuGroupOpen="images/treeview_open.gif"; //菜单打开图标

  this.MenuItemClass=""; //菜单项样式

  this.MenuItemInfoClass=""; //菜单链接样式

  this.MenuItemlPad="12px";//下级菜单缩进仁值

  this.DefaultGroupState=false; //菜单组装入时默认状态

  document.write("<div id=\"treeroot\"></div>");

  this.Node=document.getElementById("treeroot");

  //0结点DOM对像,数组1为连接显示,2为连接href,3为连接target,4为连接显示前图标

  this.AddItem=function(menuinfo){

  var div=creatediv();

  var div1=creatediv();

  var ico=[this.MenuGroupClose,this.MenuGroupOpen];

  div.className=this.MenuItemClass;

  div1.style.marginLeft=this.MenuItemlPad;

  div1.style.display=this.DefaultGroupState?"":"none";

  var Node=menuinfo[0]?menuinfo[0][1]:this.Node;

  var iteminfo="";

  if(menuinfo[4]) iteminfo="<img src=\""+menuinfo[4]+"\" align=\"absmiddle\">";

  if(menuinfo[2]) iteminfo+=" <a href=\""+menuinfo[2]+"\" target=\""+menuinfo[3]+"\" class=\""+this.MenuItemInfoClass+"\">";

  iteminfo+=menuinfo[1];

  if(menuinfo[2])iteminfo+="</a>";

  div.innerHTML=iteminfo;

  Node.appendChild(div);

  Node.appendChild(div1);

  if(menuinfo[0]){

  if(!menuinfo[0][0].havechild) {

  var as=document.createElement("img");

  as.src=ico[1];

  as.align="absmiddle";

  as.onclick=function(){

  swapshow(Node,as,ico);

  }

  menuinfo[0][0].insertBefore(as,menuinfo[0][0].firstChild);

  as.insertAdjacentText("afterEnd"," ");

  menuinfo[0][0].havechild=true;

  }

  }

  return [div,div1];

  }

  function creatediv(){

  var div=document.createElement("div");

  return div;

  }

  function swapshow(obj,ico,oo){

  if(obj.style.display!=""){

  obj.style.display="";

  ico.src=oo[0];

  }

  else{

  obj.style.display="none";

  ico.src=oo[1];

  }

  }

  }

  -->