我用javascript生成了html代码(很多div)。现在我想用GetElementById找到生成的div

时间:2011-10-12 18:38:35

标签: javascript html dom

如果我在body中手动添加了div id =“something”并在脚本中使用window.onload = init方法来获取它,那么

GetElementById可以正常工作。效果很好。

但是如果我使用for循环来生成id为1,2,3的div,依此类推。我无法得到它。有没有办法获得那些生成的div?

这就是生成HTML代码的原因(只是为了清楚我的意思):

for(i=0; i<randomizeColoursList.length; i++)
{
    document.getElementById("renderColors").innerHTML += 
        '<div class=\"box\"><div class=\"' + i + '\"><font color=\"' 
        + randomizeColoursList[i] + '\">' 
        + "" + '<img src=\"dist/card_bg.gif\"></div></div>';                    
}   

生成其中一个:

<div class="8"><font color="#3be6c4"><img src="dist/card_bg.gif"></font></div>

与8级的Div是我想要获得的id。但是说它是空的。

感谢。

3 个答案:

答案 0 :(得分:5)

id null ,因为您尚未在标记创建中指定它。您似乎正在将id值分配给class

答案 1 :(得分:1)

生成更像这样的东西:

<div id="div1" class="8"><font color="#3be6c4"><img src="dist/card_bg.gif"></font></div> 

此外,您不需要使用字体标记,也不应该使用它们。只需将样式添加到div。

<div id="div1" class="8" style="color:#3be6c4;"><img src="dist/card_bg.gif"></div> 

答案 2 :(得分:0)

你这样做的方式有点倒退。如果你像我下面那样编写代码,那么你不需要给出div的ID,你最终会得到一个完整的引用数组。

var i, div, img;
var createdDivs = [];
for(i=0; i<randomizeColoursList.length; i++)
{
    div = document.createElement('div');
    img = document.createElement('img');
    div.className = "box";
    div.style.backgroundColor = randomizeColoursList[i];
    div.style.color = randomizeColoursList[i];
    img.src = "dist/card_bg.gif"

    div.appendChild(img);
    document.getElementById("renderColours").appendChild(div);                

    createdDivs.push(div);
}  

直播链接:http://jsfiddle.net/7HjLL/