2011-11-29 44 views
1

我有4個變量包含4個不同的字符串。我想使用for-loop來創建表格,並將字符串應用到單元格中。通過我的代碼,我得到了「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

我真的懷疑這是否有效。什麼是[k]? – FailedDev

回答

3

嘗試window['content' + k]代替,但也認真考慮改變你的設計,所以你不需要變量變量。他們是一個可怕的怪物,並導致接下來不可能調試的代碼。

在最低限度,切換到使用的數組:

content = ['', 'Text1', 'Text2', 'Text3', 'Text4']; // empty string to fill in the '0' element 

alert(content[1]); // outputs Text1 
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); 
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); 
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); 

This will wor但有風險,一般都很脆弱。

0

由於這是功課這裏是一些食物雖:

把所有的變量在「內容」陣:

var content = new Array("Text1", "Text2" ...); 

然後遍歷它和訪問它像content[i]

for (var i = 0; i < content .length; i++){...} 

希望它有幫助:)