2016-03-25 42 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,会怎么样? –