我有4个包含4个不同字符串的变量。我想使用for循环来创建表,并将字符串应用到单元格中。使用下面的代码,我将“content1”,“content2”等作为字符串,而不是变量content1,content2等中的字符串。是否可以将循环中创建的字符串(例如“content1”)转换为变量,如果是,我该怎么办?
var content1 = "Text1";
var content2 = "Text2";
var content3 = "Text3";
var content4 = "Text4";
for (var i = 1; i < 5; i++){
var td = document.createElement('td');
var text = document.createTextNode("content" + [k]);
td.appendChild(text);
tr.appendChild(td);
}
table.appendChild(tr);
答案 0 :(得分:3)
请尝试window['content' + k]
,但也要认真考虑更改设计,这样就不需要变量变量了。它们是一个可怕的怪物,并导致接下来不可能调试的代码。
至少,切换到使用数组:
content = ['', 'Text1', 'Text2', 'Text3', 'Text4']; // empty string to fill in the '0' element
alert(content[1]); // outputs Text1
答案 1 :(得分:1)
是
var content = ["Text1", "Text2", "Text3", "Text4"];
for (var i = 0; i < content.length; i++){
var td = document.createElement('td');
var text = document.createTextNode( content[i] );
td.appendChild(text);
tr.appendChild(td);
}
table.appendChild(tr);
答案 2 :(得分:1)
对于这种特定情况,您可以使用和数组来保存字符串:
var content = ['Text1', 'Text2', 'Text3', 'Text4'];
以后
var text = document.createTextNode(content[i+1]);
另一个非常不推荐的选择是评估代码:
eval("var text = content" + (i+1));
var text = document.createTextNode(text);
这会有效,但有风险,而且一般都是不稳定的。
答案 3 :(得分:0)
将数据创建为数组应该有效。
var content = new Array();
content[0] = "Text1";
content[1] = "Text2";
content[2] = "Text3";
for (var i = 1; i < 5; i++){
var td = document.createElement('td');
var text = document.createTextNode("content" + content[k]);
td.appendChild(text);
tr.appendChild(td);
}
table.appendChild(tr);
答案 4 :(得分:0)
因为这是家庭作业,所以这里有一些食物:
将所有变量放在“内容”数组中:
var content = new Array("Text1", "Text2" ...);
然后迭代它并像content[i]
for (var i = 0; i < content .length; i++){...}
希望有所帮助:)