请问如何遍历dtree树(树动态生成)最好有部分代码 或者说下思路 谢谢

解决方案 »

  1.   

    首先LZ要有DTREE的 JS  和 CSS ..
    JS里面有注解 <script type="text/javascript">
    <!-- d = new dTree('d');
    d.add('n',-1,'系统管理');
    d.add(1,'n','用户管理','#');
    d.add('a',1,'用户管理','','right_body');
    d.add('a1',1,'用户增加','','right_body');
    d.add('a2',1,'用户删除','','right_body');
    d.add('a3',1,'用户修改','','right_body');
    d.add('a3',1,'','','right_body'); d.add(4,'n','客户管理','#');
    d.add("c",4,'客户资料',"../Business Management/UserInfo.html","客户资料","right_body");
    d.add("c1",4,'个人收费',"../Business Management/PersonPay.html","个人收费","right_body");
    d.add("c2",4,'批量收费',"../Business Management/BatchPay.html","批量收费","right_body");
    d.add("c3",4,'用户黑名单',"../Business Management/Users_Debts_Query.html","用户黑名单","right_body");
    d.add("c4",4,'到期用户',"../Business Management/User_Query1.html","用户信息查询","right_body");
    d.add("c5",4,'上门收费录入',"../Business Management/Onsitecharges.html","模拟上门收费录入","right_body");
    d.add("c7",4,'批量档案录入',"../Business Management/Users_Batchfiles.html","模拟批量档案录入","right_body");
    d.add("c9",4,'用户批量修改',"../Business Management/User_Update.html","模拟用户批量修改","right_body");
    d.add("c10",4,'柜台收费清单',"../Business Management/PayList.html","柜台收费清单","right_body");

    d.add(5,'n','客户管理1','#');
    d.add("b",5,'客户资料1',"../Business Management/UserInfo.html","客户资料","right_body");
    d.add("b1",5,'个人收费1',"../Business Management/PersonPay.html","个人收费","right_body");
    d.add("b2",5,'批量收费1',"../Business Management/BatchPay.html","批量收费","right_body");
    d.add("b3",5,'用户黑名单1',"../Business Management/Users_Debts_Query.html","用户黑名单","right_body");
    d.add("b4",5,'到期用户1',"../Business Management/User_Query1.html","用户信息查询","right_body");
    d.add("b5",5,'上门收费录入1',"../Business Management/Onsitecharges.html","模拟上门收费录入","right_body");
    d.add("b7",5,'批量档案录入1',"../Business Management/Users_Batchfiles.html","模拟批量档案录入","right_body");
    d.add("b9",5,'用户批量修改1',"../Business Management/User_Update.html","模拟用户批量修改","right_body");
    d.add("b10",5,'柜台收费清单1',"../Business Management/PayList.html","柜台收费清单","right_body");
    document.write(d); //-->
    </script>
      

  2.   

    谢谢 不好意思 偷懒了 ,前台显示基本就是这个意思。现在我在dtree中每个节点 子节点加上checkbox,然后想遍历树,取出选定的checkbox,不知道怎么遍历树,万望指教
      

  3.   

    你查看dtree.js,它生成的每个节点其实是一个div,遍历div就可以了
      

  4.   

    偷懒下 :帮你转载一篇  ..
    http://blog.csdn.net/kubete/archive/2008/06/21/2571949.aspx
    也可以GOOGLE下 :"dtree 复选框" ..
    MS 要修改下DTREE源码 
      

  5.   

    其实你可以去看看 dtree.js中的你点击节点的那个事件,在275行有个
    str += ' onclick="javascript: ' + this.obj + '.s(' + nodeId + ');"',
    你可以自己构造一个这样的事件,我之前就是这样解决的,不过我的是把节点值传到其他框架,不是checkbox 望有帮助,
      

  6.   

    是不需要遍历DIV再来找你所有的节点的,效率
      

  7.   

     str += ' onMouseUp="javascript: ' + this.obj + '.u(' + nodeId + ');"';//鼠标弹起时得到节点的ID//将节点ID保存到页面,并得到此ID的名称
    dTree.prototype.u = function(id) {
    var str ='';
    if (!this.config.useSelection) return;
        var cm=id+1;
    var cn = this.aNodes[id];
    if (cn._hc && !this.config.folderLinks) return;
        if (this.selectedNode != id) { 
    //if (this.selectedNode || this.selectedNode==0){
    document.treeform.treehidden.value=cm;
    var cname=this.aNodes[id].name;
    //alert(cname);
    document.treeform.cnametext.value=cname;
    var fid=this.aNodes[id].pid;
    //alert(fid);
    str += this.getfathername(fid);
    /*document.treeform.treetext1.value=cname;
    document.treeform.treetext2.value=fname;*/
    //}
    }
    };我的解决方法,做参考,呵呵
      

  8.   

    我这个思路可以么 
    在dtree中写一个方法 遍历所checkbox(所有checkbox name都相同)然后 返回所有选中的 节点的id组成的字符串