语句大至简化为下:function funs(id){
document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
}
for (var i=1;i<e.length ;i++)
{
funs(i)
}
html:
<div id=1></div>现在问题是,第一次循环没问题,id=1的元素存在,但第二次循环时需要用到第一次循环所生成的元素,如果funs函数没执行完毕(这个是简化的,实际比这个要复杂,需要调用页面,所以执行时间不知道),那么就运行不下去了怎么能判断,当funs执行完毕后,才继续执行循环呢?

解决方案 »

  1.   

    function funs(id){
    if(i==e.length)return;
    document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
    funs(id+1);
    }
      

  2.   

    if(i==e.length)return;
    改成
    if(id==e.length)return;
      

  3.   

    funs(1);
    function funs(id){
    if(id==e.length)return;
    document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
    funs(id+1);
    }
      

  4.   


    function funs(id){
    if(i==e.length)return;
    document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
    funs(id+1);
    }嵌套循环不错,代码简单
      

  5.   

    function funs(id){
    if(i==e.length)return;
    document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
    funs(id+1);
    }这样还是不太好。我的那个funs是个通用函数,在别的地方也要用到的,而别的地方不需要循环
      

  6.   

    就楼主开始的问题,支持4楼。
    楼主现在又要在其他地方不用循环,所以,不论是把循环写在funs里还是反过来写都有问题,楼主可否把问题说具体明白点,什么时候用循环什么时候不用循环等等。
      

  7.   

    function funs(id){
                document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
            }
            var i=1;
            while(i<5){
                if(document.getElementById(i+1)==undefined){
                    funs(i);
                    i=i+1;
                }
            }
      

  8.   

    funs原形是这样的:
    function funs(id.url){
    document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
    document.getElementById(id+1).innerHTML = geturl(url+"?id="+id);
    }
    geturl 函数是获取一个页面的内容大部分时候都是只用funs函数用来生成一个div的但有时需要生成多个嵌套的div(比如目录树,联动菜单等)就需要循环来生成
    for (var i=1;i<e.length ;i++)
    {
    funs(e(i))
    }
      

  9.   

    像上面的,如果网速很慢,geturl()运行时间长就会出问题或者这样吧,如果id=e(i)的元素存则继续循环,如果不存在则暂时停止,直到id=e(i)元素存在再继续行不
      

  10.   

    訂正:
    function funs(id){
                document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
            }
            var i=1;
            while(i<5){
                funs(i);
                if(document.getElementById(i+1)!=undefined){
                    i=i+1;
                }
            }