>当函数2查找字节点找不到的时候,直接就回到了函数1那里?出错了吗?那就让他不要出错function fun2()
{
try
{//你的程序内容}catch(e){}
}

解决方案 »

  1.   

    由于你没有给出函数的写法,只有猜了。你大概是这样作的函数2:
      if 子节点?
        函数2
      else
        其他
      endif
    或者
    函数2:
      if 子节点?
        函数2
      endif
      其他这样只会沿一条分支走到底,然后返回
    应该还有个循环来判断是否有兄弟节点,没有再返回
      

  2.   

    参考一下:http://expert.csdn.net/Expert/TopicView1.asp?id=1447234
      

  3.   

    function openit(typeid) { var divTree = document.all.tags("div");
    var obj = eval(typeid);
    var j = 1
    for(i=1;i<divTree.length;i++){
    var objTree = divTree(i); if(objTree.parent == obj.id){

    if (objTree.style.display == "none" ) {
    objTree.style.display = "block";
    obj.all.tags('img')[0].src='../images/icon-folder1-open.gif';
    obj.all.tags('img')[1].src='../images/icon-folder-open.gif';
    }else {
    closeit(objTree.id)
    objTree.style.display = "none";
    obj.all.tags('img')[0].src='../images/icon-folder1-close.gif';
    obj.all.tags('img')[1].src='../images/icon-folder-close.gif';
    if(objTree.className != "linkmenu"){
    objTree.all.tags('img')[0].src='../images/icon-folder1-close.gif';
    objTree.all.tags('img')[1].src='../images/icon-folder-close.gif';
    }
    }

    }
    }
    }function closeit(id) {
    var Tree
    var divTree = document.all.tags("div");
    var ob = eval(id); for(j=1;j<divTree.length;j++){
    Tree = divTree(j);
    if(Tree.parent == id){

    closeit(Tree.id);
    Tree.style.display = "none";
    ob.all.tags('img')[0].src='../images/icon-folder1-close.gif';
    ob.all.tags('img')[1].src='../images/icon-folder-close.gif';
    if(Tree.className != "linkmenu"){
    Tree.all.tags('img')[0].src='../images/icon-folder1-close.gif';
    Tree.all.tags('img')[1].src='../images/icon-folder-close.gif';
    } } }
    }
    、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
    抱歉,忘了给程序了,程序就是这么写的,问题在那里?请再指教~
      

  4.   

    由于无法测试,这里提供想法。
    function closeit(id) {
    var tmpId = id; //将此变量先赋值到一个局部变量中。
    var Tree
    var divTree = document.all.tags("div");
    var ob = eval(tmpId); for(j=1;j<divTree.length;j++){
    Tree = divTree(j);
    if(Tree.parent == tmpId){

    closeit(Tree.id);
    Tree.style.display = "none";
    ob.all.tags('img')[0].src='../images/icon-folder1-close.gif';
    ob.all.tags('img')[1].src='../images/icon-folder-close.gif';
    if(Tree.className != "linkmenu"){
    Tree.all.tags('img')[0].src='../images/icon-folder1-close.gif';
    Tree.all.tags('img')[1].src='../images/icon-folder-close.gif';
    } } }
    }
      

  5.   

    函数2是closeit吧?
    直观的感觉是这里不对
    for(j=1;j<divTree.length;j++){
    应该是
    for(var j=1;j<divTree.length;j++){
    否则本层次的j的值会受下一层次的j的影响若还不行,请给出html部分以便测试
      

  6.   

    同意楼上,没有var的时候j是全局变量。