2015-10-15 43 views
0

下午好。在一个循环的变化ID的div有两个ID变量

我试图做一个循环,一个DIV,有两个DIV ID的(“UNO”,“OTRO”)将被替换同一div不时直到现在我还

setInterval(function() { 
 
    loop = 2; 
 
    total = 0; 
 
    for (i = 0; i < loop; i++) { 
 
    total += 1; 
 
    if (total == loop) 
 
     var casa = "uno"; 
 

 

 
    else 
 
     var casa = "otro"; 
 
    } 
 
    var div = document.createElement("div"); 
 
    div.id = casa; 
 
    document.body.appendChild(div); 
 
    console.log(div) 
 
}, 5000);

但只打印一个DIV,请一点点帮助

+1

你只创建一个div? –

+0

是的,只有一个@DaveNewton –

+0

要有两个div,你的循环应该包含div添加代码。 – Avi

回答

2

移动附加/环内创建逻辑:

setInterval(function() { 
    loop = 2; 
    total = 0; 
    for (i = 0; i < loop; i++) { 
     var casa = ""; 
     total += 1; 
     if (total == loop) casa = "uno"; 
     else casa = "otro"; 

     var div = document.createElement("div"); 
     div.id = casa; 
     document.body.appendChild(div); 
     console.log(div) 
    } 

}, 5000); 

根据您的意见,您的问题真的不清楚,例如,是否在初始时间在DOM中的div?我会告诉你,这将检查DIV已经附上了代码,否则只会改变ID:

var appended = false, currentId = ""; 
setInterval(function() { 
    loop = 2; 
    total = 0; 
    for (i = 0; i < loop; i++) { 
     var casa = ""; 
     total += 1; 
     if (total == loop) casa = "uno"; 
     else casa = "otro"; 
    } 

    var div = !appended ? document.createElement("div") : document.getElementById(currentId); 
    div.id = casa; 
    if (!appended) document.body.appendChild(div); 
    console.log(div); 
    appended = true; 
    currentId = casa; 
}, 5000); 

但有了这个,你总是会得到相同的ID,你应该检查以前的ID,而不是做一个循环:

var appended = false, currentId = ""; 
setInterval(function() { 
    var casa = currentId === "uno" ? "otro" : "uno"; 

    var div = !appended ? document.createElement("div") : document.getElementById(currentId); 
    div.id = casa; 
    if (!appended) document.body.appendChild(div); 
    console.log(div); 
    appended = true; 
    currentId = casa; 
}, 5000); 
+0

你打我该解决方案:) –

+0

我只需要一个DIV如何更换ID,并且代码使许多 –

+0

@NicolasTenorio检查我的编辑,请 – taxicala