2010-02-01 40 views
0

我想把一個數組放在getElementById中以實現循環目的。這似乎不起作用,我該怎麼做?getElementById(array [x])?

編輯:對不起人們說未定義。

var lol=new Array("test", "test2"); 

var x = 0; 
while(x == 4) { 
    number = parseInt(document.getElementById(lol[x]).value); 
    x++; 
} 

而且我有名爲test和test2的輸入id。

+1

*它似乎不工作*:任何錯誤消息,意外的行爲等?代碼也可以幫助... –

+9

第31行有一個語法錯誤

+0

代碼片段+錯誤消息=可診斷的問題。 –

回答

7

while循環只能當x == 4。將其更改爲:

while(x < lol.length) 

循環遍歷數組中的所有元素。 更重要的是,這會凝結你的循環:

var lol=new Array("test", "test2"); 
for(var x = 0; x < lol.length; x++) { 
    number = parseInt(document.getElementById(lol[x]).value); 
} 
0

嘗試把你的陣列了引號的...

document.getElementById(lol[x]).value 

引號把它變成一個靜態字符串「笑[X]」,當你想笑陣列在x指數值。

這取代了我較早的,不太知情的答案。

希望這有助於

+0

對於報價部分來說,它最初並不存在,我只是在測試後忘記將其刪除。 – Strawberry

0

你說你有number = parseInt(document.getElementById("lol[x]").value);

  1. "lol[x]"是與字面值,而不是lol保持在指數x值的字符串。使用getElementById(lol[x])

  2. parseInt當您不傳遞基數時可能會做出意想不到的事情。使用類似於parseInt(document.getElementById(lol[x]).value, 10)

最後,您不檢查元素是否存在。做類似:

var element = document.getElementById(lol[x]); 
if (element) { 
    number = parseInt(element.value, 10); 
} else { 
    // handle error or throw exception 
}