从动态获取值

时间:2016-03-25 01:15:47

标签: javascript

我试图获取变量的值,但变量名是动态的,但是没有成功

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"]);
}

这可能吗?

3 个答案:

答案 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]);
}

答案 1 :(得分:1)

通过window访问变量并不是一个好主意。

只需将值存储在对象中并使用方形表示法访问它们:

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

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

答案 2 :(得分: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])
}