使用javascript中的动态变量更新div id

时间:2014-06-29 21:55:20

标签: javascript

我认为这很容易,但这不起作用,虽然它也没有给出错误。

我的网页上有一些带有id的display1,display2,display3 ......的文字。

当我尝试在这样的循环中更新它们时,没有任何反应。

for (i = 1; i < 4; i++){
('display' + i).innerHTML = "123";
}

我做错了什么?有没有更好的方法呢?

3 个答案:

答案 0 :(得分:1)

尝试

for (i = 1; i < 4; i++){
document.getElementById('display' + i).innerHTML = "123";
}

或者(更好的做法),我建议你给所有的显示元素一个类名和

displays=document.getElementsByClassName('newClassNameOfDisplays');
for (i = 1; i < displays.length+1; i++){
displays[i].innerHTML = "123";
}

您的代码不起作用,因为String().innerHTML不存在,您必须从DOM获取元素而不是创建字符串。 :)

答案 1 :(得分:0)

在您的代码中,您没有正确选择元素,请尝试以下操作:

for (var i = 1; i < 4; i++) {
    document.getElementById('display' + i).innerHTML = '123';
}

JSFiddle示例

<强> http://jsfiddle.net/tLPkj/3/

答案 2 :(得分:0)

评论中给出的答案可能都是正确的(不确定为什么它们不作为答案发布)。您的代码中发生的是您正在创建一个字符串(('display')+i),然后在该字符串上创建一个名为innerHTML的新属性,然后设置新innerHTML的值属性""

这不会产生错误的原因是(几乎)JavaScript中的所有内容都是一个对象,您可以随意设置对象的属性。例如,("Hello").description="a greeting"是一个非常有效的JavaScript语句。