2016-03-25 100 views
0

我很努力,但沒有成功,得到一個變量,其中變量名稱是動態的GET值動態

var v_1playerName = document.getElementById("id_1playerName").value; 
var v_2playerName = document.getElementById("id_2playerName").value; 
for (i = 1; i <=5 i++) { 
    alert(window["v_"+i+"playerName"]); 
} 

這是可能的價值?

+0

您試圖提醒字符串'v_1playerName'而不是變量的值。 – callback

+0

你嘗試了'var windowName =「v _」+ i +「playerName」; alert(window [windowName]);'? – ochi

+0

在這一點上,我只想知道變量的值。這是一個簡單的函數,就像這個代碼一樣,沒有別的。 –

回答

4

一個簡單的事情就是把變量放在一個數組中,然後使用for循環來顯示它們。

var v_1playerName = document.getElementById("id_1playerName").value; 
var v_2playerName = document.getElementById("id_2playerName").value; 
var nameArray = [v_1playerName,v_2playerName]; 
for (var i = 0; i < 5; i++) { 
alert(nameArray[i]); 
} 
+0

如果我不知道有多少id_xplayername,會怎麼樣? –

+0

@PedroSales你可以這樣做:'code' var playerArray = document.querySelectorAll('div.playerElement'); playerArray.forEach(p => alert(p.value);''code' –

1

通過window訪問變量不是一個好主意。

只是存儲在一個對象的值,並使用方形符號訪問它們:

var obj = { 
    v_1playerName: 0, 
    v_2playerName: 3 
} 

obj['v_' + 2 + 'playerName']; // 3 
+0

如果我不知道有多少id_xplayername會有什麼? –

1

如果你想保留的東西,你可以使用一個對象命名的引用。

var playerNames = {}; 
playerNames['p1'] = document.getElementById("id_1playerName").value; 
playerNames['p2'] = document.getElementById("id_2playerName").value; 
for (i = 1; i <= 2; i++) { 
    // dynamically get access to each value 
    alert.log(playerNames['p' + i]) 
} 
+0

如果我不知道有多少id_xplayername,會怎麼樣? –