我正在尝试编写一个循环,以改进我为网页上的html元素赋值的方式。
现在我用..。
document.getElementById("Season201516Score1").innerHTML = Game201516Score1;
document.getElementById("Season201516Score2").innerHTML = Game201516Score2;
document.getElementById("Season201516Score3").innerHTML = Game201516Score3;等等..。
变量是
var Game201516Score1= "L 0-2"
var Game201516Score2= "W 1-0"
var Game201516Score3= "D 2-2"我使用的循环是
for (var i = 1; i <= 3; ++i)
{
element = 'Season201516Score' + i
Score = ('Game201516Score' + i)
document.getElementById(element).innerText = Score;
}它的工作原理是将文本放在页面的正确元素中,而不是值"L 0-2“、"W 1-0”或"D 2-2“,而是给出文本"Game201516Score1”、"Game201516Score2“和"Game201516Score3”。
有人能告诉我我做错了什么吗。
发布于 2015-10-27 10:12:45
Score = ('Game201516Score' + i)是字符串而不是变量。因此,您要将该字符串分配给html,而不是将变量分配给html。您需要将字符串转换为变量,以便能够首先使用它。如果它是一个全局变量,那么window[Score]应该给出正确的答案,而不是仅仅使用分数。否则,您也可以使用this[Score]。
发布于 2015-10-27 10:12:41
你能把分数存储在一个数组中吗?就像这样-
var Game201516Score = [];
Game201516Score[0]= "L 0-2"
Game201516Score[1]= "W 1-0"
Game201516Score[2]= "D 2-2"
for (var i = 0; i < 3; i++)
{
element = 'Season201516Score' + i
document.getElementById(element).innerText = Game201516Score[i];
}发布于 2015-10-27 10:14:53
eval:将Score = ('Game201516Score' + i);行更改为Score = eval('Game201516Score' + i);。
window:如果eval不适合您,那么对上面的Score = window["Game201516Score" + i];进行尝试;
希望一切都会好起来!
https://stackoverflow.com/questions/33365030
复制相似问题