语句大至简化为下: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执行完毕后,才继续执行循环呢?
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执行完毕后,才继续执行循环呢?
if(i==e.length)return;
document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
funs(id+1);
}
改成
if(id==e.length)return;
function funs(id){
if(id==e.length)return;
document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
funs(id+1);
}
function funs(id){
if(i==e.length)return;
document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
funs(id+1);
}嵌套循环不错,代码简单
if(i==e.length)return;
document.getElementById(id).innerHTML = "<div id=" + (id+1) +"></div>";
funs(id+1);
}这样还是不太好。我的那个funs是个通用函数,在别的地方也要用到的,而别的地方不需要循环
楼主现在又要在其他地方不用循环,所以,不论是把循环写在funs里还是反过来写都有问题,楼主可否把问题说具体明白点,什么时候用循环什么时候不用循环等等。
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;
}
}
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))
}
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;
}
}