this.drawRoot = function(nodeName, nodeText, nodeParameters, nodeIcon, hasCheckbox, isDisabled, putObj) {// 画根节点
/*--------------- 画根节点 -----------------
nodeName:      根节点的名
nodeText:      根节点的显示文字
nodeParameters:根节点的自带属性串
nodeIcon:      根节点的图标文件名
hasCheckbox:   根节点是否有检查盒
isDisabled:    该检查盒是否不可用
putObj:        放置目录树的目标元素。空:则document.write;否则putObj.innerHTML=
-------------------------------*/
                  if (!this.test()) {return;}
                  if (this.rootExist) {alert("根节点已存在"); return;}
                  this.rootExist = true;                  if (nodeName==null || this.trim(nodeName)=="") {nodeName = "root";}
                  else {nodeName = this.trim(nodeName);}
                  if (nodeText==null) {nodeText = "";}
                  if (nodeIcon==null) {nodeIcon = "";}
                  else {nodeIcon = this.trim(nodeIcon);}
                  if (hasCheckbox==null) {hasCheckbox = false;}
                  if (isDisabled==null) {isDisabled = false;}                  if (nodeParameters==null) {nodeParameters = "";}                  var objName = "document." + this.name;
                  var objID = this.name + "_" + nodeName;
                  var outString = "";                  outString += "<table id='" + objID + "' border='0' cellpadding='0' cellspacing='0' bgcolor='" + this.generalBgColor + "'>";
                  if (!this.showRoot) {outString += "<TR id='" + objID + "_row' style='display:none'>";}
                  else {outString += "<TR id='" + objID + "_row'>";}
                  outString += "<td colspan=2 nowrap>";
                  if (nodeIcon != "") {                                  // 有图标
                        outString += "<A href='JavaScript:" + objName + ".hit(document.all." + objID + ")' title='" + nodeText + "'>"
                                   + this.getImgTag(nodeIcon, objID+"_icon") + "</a>";
                  }
                  if (hasCheckbox) {                                     // 有检查盒
                        outString += "<input id='" + objID + "_chkbox' type=checkBox" + (isDisabled?" Disabled":"")
                                   + " onClick='document.all." + this.name + "_" + nodeName + ".resetCheckBox(this.checked)'>";
                  }
                  outString += "<A id='" + objID + "_text' style='color:" + this.generalColor + "'"
                             + " href='JavaScript:" + objName + ".hit(document.all." + objID + ")' title='" + nodeText + "'>"
                             + nodeText + "</a></td></tr>";
                  outString += "<tr id='" + objID + "_son'><td>&nbsp;</td><td>";
                  outString += "<table id='" + objID + "_sons' border='0' cellpadding='0' cellspacing='0'>";
                  outString += "</table></td></tr>";
                  outString += "</table>";
                  if (putObj) {putObj.innerHTML = outString;}
                  else {document.writeln(outString);}
//------ 设置根节点的各元素 ---------------------------
                  this.root = eval("document.all." + objID);        // 根节点元素
                  this.root.node_parentName = "";                   // 父节点的名
                  this.setNode(this.root, nodeName, nodeParameters, 2, hasCheckbox, (nodeIcon==""?false:true));
                  this.root.help = this.help;                       // 在wObj窗口(缺省:在新窗口)显示帮助页面
//---------------------------------------------
            }

解决方案 »

  1.   

    this.addNode = function(parentName, nodeName, nodeText, nodeParameters, nodeStatus, hasCheckbox, isDisabled) {      // 加节点
    /*------------ 加节点 --------------------
    parentName:    父节点的名(缺省是根节点)
    nodeName:      本节点的名
    nodeText:      本节点的显示文字
    nodeParameters:本节点的自带属性串
    nodeStatus:    本节点状态。0——叶子;1——收拢文件夹;2——展开文件夹
    hasCheckbox:   本节点是否有检查盒
    isDisabled:    该检查盒是否不可用
    -------------------------------*/
                      if (!this.rootExist) {alert("根节点不存在"); return;}
                      if (nodeName==null || this.trim(nodeName)=="") {alert("节点名不得为空"); return;}
                      else {nodeName = this.trim(nodeName);}
                      if (this.findNode(nodeName) != null) {alert("同名节点已存在"); return;}
                      if (parentName==null || this.trim(parentName)=="") {parentName = this.root.node_name;}
                      else {parentName = this.trim(parentName);}
                      var parentNode = this.findNode(parentName);                       // 找到父节点
                      if (parentNode == null) {alert("父节点不存在"); return;}
                      if (parentNode.node_status == 0) {alert("父节点不是文件夹"); return;}
                      if (nodeText==null) {nodeText = "";}
                      if (hasCheckbox==null) {hasCheckbox = false;}
                      if (nodeStatus==null) {nodeStatus = 0;}
                      if (nodeParameters==null) {nodeParameters = "";}
                      if (isDisabled==null) {
                            if (parentNode.node_chkbox) {isDisabled = parentNode.node_chkbox.disabled;}
                            else {isDisabled = false;}
                      }
                      if (parentNode.node_sonNodes.length > 0) {
                            if (this.imageOfVertLine != "") {parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_vertLine.style.backgroundImage = "url(" + this.imageDirectory + this.imageOfVertLine + ")";}
                            if (this.imageOfVertLine == "") {
                                  parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_vertLine.innerHTML='<table width="1" bgcolor="'+this.generalColor+'" height="100%" border="0" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';
                            }
                            if (parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_status == 0) {            // 是叶子
                                  if (this.imageOfConLeaf == "") {parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_continueIcon.innerText = "├";}
                                  else {parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_continueIcon.src = this.imageDirectory + this.imageOfConLeaf;}
                            }
                            else {if (parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_status == 1) {            // 是收拢文件夹
                                        if (this.imageOfConCloseFolder == "") {parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_continueIcon.innerText = "├";}
                                        else {parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_continueIcon.src = this.imageDirectory + this.imageOfConCloseFolder;}
                                  }
                                  else {if (this.imageOfConOpenFolder == "") {parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_continueIcon.innerText = "├";}
                                        else {parentNode.node_sonNodes[parentNode.node_sonNodes.length-1].node_continueIcon.src = this.imageDirectory + this.imageOfConOpenFolder;}
                                  }
                            }
                      }
                      var objName = "document." + this.name;
                      var objID = this.name + "_" + nodeName;
                      var outString = "";
                      outString += "<table id='" + objID + "' border='0' cellpadding='0' cellspacing='0' bgcolor='" + this.generalBgColor + "'>";
                      outString += "<TR id='" + objID + "_row'><td>";
    //--------------------画连接点图符-----------------------------------
                      if (nodeStatus == 0) {outString += this.getImgTag(this.imageOfEndLeaf, objID+"_con", "└");} // 是叶子节点
                      else {outString += "<A HREF='JavaScript:document.all." + objID + ".collapseOrExpand()' title='展开或收拢文件夹'>";
                            if (nodeStatus == 1) {        // 是收拢文件夹
                                  outString += this.getImgTag(this.imageOfEndCloseFolder, objID+"_con", "└") + "</A>";
                            }
                            else {outString += this.getImgTag(this.imageOfEndOpenFolder, objID+"_con", "└") + "</A>";}
                      }
                      outString += "</Td><td nowrap>";
      

  2.   

    if (this.showIcon) {                                  // 有图标
                            if (nodeStatus == 0) {
                                  if (this.imageOfLeaf != "") {
                                        outString += "<A href='JavaScript:" + objName + ".hit(document.all." + objID + ")'"
                                                   + " title='" + nodeText + "'>"
                                                   + this.getImgTag(this.imageOfLeaf, objID+"_icon") + "</A>";
                                  }
                            }
                            else {if (nodeStatus == 1) {        // 是收拢文件夹
                                        if (this.imageOfCloseFolder != "") {
                                              outString += "<A href='JavaScript:" + objName + ".hit(document.all." + objID + ")'"
                                                         + " title='" + nodeText + "'>"
                                                         + this.getImgTag(this.imageOfCloseFolder, objID+"_icon") + "</A>";
                                        }
                                        else {outString += "<A href='JavaScript:document.all." + objID + ".collapseOrExpand()'"
                                                         + " title='" + nodeText + "'>"
                                                         + this.getImgTag(this.imageOfCloseFolder, objID+"_icon", "□") + "</A>";
                                        }
                                  }
                                  else {if (this.imageOfOpenFolder != "") {
                                              outString += "<A href='JavaScript:" + objName + ".hit(document.all." + objID + ")'"
                                                         + " title='" + nodeText + "'>"
                                                         + this.getImgTag(this.imageOfOpenFolder, objID+"_icon") + "</A>";
                                        }
                                        else {outString += "<A href='JavaScript:document.all." + objID + ".collapseOrExpand()'"
                                                         + " title='" + nodeText + "'>"
                                                         + this.getImgTag(this.imageOfOpenFolder, objID+"_icon", "■") + "</A>";
                                        }
                                  }
                            }
                      }
                      if (hasCheckbox) {                                     // 有检查盒
                            outString += "<input id='" + objID + "_chkbox' type=checkBox" + (isDisabled?" Disabled":"")
                                                       + " onClick='document.all." + objID + ".resetCheckBox(this.checked)'>";
                      }
                      outString += "<A id='" + objID + "_text' style='color:" + this.generalColor + "' title='" + nodeText + "'"
                                 + " href='JavaScript:" + objName + ".hit(document.all." + objID + ")'>"
                                 + nodeText + "</a></td></tr>";
                      outString += "<tr id='" + objID + "_son'" + (nodeStatus==2?"":" style='display:none'") + ">";
                      outString += "<td id='" + objID + "_vert' height=5 align=center>&nbsp;</td>";       // 垂直线的单元格
                      outString += "<td><table id='" + objID + "_sons' border='0' cellpadding='0' cellspacing='0'></table></td>";
                      outString += "</tr></table>";                  var trNumber = parentNode.node_son.rows.length;
                      var newTr = parentNode.node_son.insertRow(trNumber);       // 插入一行
                      newTr.style.verticalAlign = "top";
                      newTr.insertCell();                                   // 插入一列
                      parentNode.node_son.rows[trNumber].cells[0].style.textAlign="left";
    //                  parentNode.node_son.rows[trNumber].cells[0].noWrap = true;
                      parentNode.node_son.rows[trNumber].cells[0].innerHTML = outString;
    //------- 设置本节点的各元素 ---------------------------
                      var newObj = eval("document.all." + objID);                             // 本节点元素
                      newObj.node_parentName = parentName;                                    // 父节点的名
                      this.setNode(newObj, nodeName, nodeParameters, nodeStatus, hasCheckbox, this.showIcon);
                      parentNode.node_sonNodes[parentNode.node_sonNodes.length] = newObj;
    //---------------------------------------------
                }
                return this;
          }
          var tt = new this.create(treeName);
          if (tt != null) {eval("document." + treeName + " = tt");}
          return tt;
    }// Ending Hidden -->