2017-09-26 103 views
-1

我試圖做這樣的事情:對於聲明一個變量

for (var i = 1; i <= va; i++) { 
    var "v" + i + "x" = document.getElementById("v" + i + "x"); 
    var "v" + i + "y" = document.getElementById("v" + i + "y"); 
    var "v" + i + "r" = document.getElementById("v" + i + "r"); 
} 

但我不知道怎麼做是正確的。

+0

添加更多你願意做的代碼。 –

+3

你究竟想要做什麼?動態變量名稱?停止你在做什麼,然後用一個數組來代替。 – Teemu

+0

是Teeemu im試圖自動生成變量 –

回答

3

動態變量通常不是一種好的做法。你應該避免它們。一個更好的解決辦法是創建一個對象,包含他們像這樣:

var obj = {}; 

for (var i = 1; i <= va; i++) { 

    obj["v" + i + "x"] = document.getElementById("v" + i + "x"); 
    obj["v" + i + "y"] = document.getElementById("v" + i + "y"); 
    obj["v" + i + "r"] = document.getElementById("v" + i + "r"); 

} 

之後,您可以訪問像元素:

console.log(obj["v1r"]); // Node with id v1r reference 
console.log(obj["v5x"]); // Node with id v5x reference 
+0

我該如何使用這個對象,就像我想做一個警報一樣,我會寫警報(v1x);和警報(v25x); ?因爲在你的Awnser用控制檯日誌輸出:「」這就是我的輸入不是變量.....哦,我剛剛意識到我在結尾處忘了.value -_-對不起 –

+0

@OfficielFreaks,控制檯日誌示例輸出對DOM中該元素的引用。要檢查該輸入的值,請執行以下操作:alert(obj [「v1r」]。value)' –

+0

nvm找到它 –

0

它看起來像你最好使用arrays

var elements = []; // init to an empty array 
for (var i = 1; i <= va; i++) { 
    elements[i] = []; // each array entry is itself an array 
    elements[i]['x'] = document.getElementById("v" + i + "x"); 
    elements[i]['y'] = document.getElementById("v" + i + "y"); 
    elements[i]['r'] = document.getElementById("v" + i + "r"); 
} 

然後使用適當的索引檢索自己的價值觀:

console.log(elements[1]['x']);