我认为这很容易,但这不起作用,虽然它也没有给出错误。
我的网页上有一些带有id的display1,display2,display3 ......的文字。
当我尝试在这样的循环中更新它们时,没有任何反应。
for (i = 1; i < 4; i++){
('display' + i).innerHTML = "123";
}
我做错了什么?有没有更好的方法呢?
答案 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语句。