我试图获取变量的值,但变量名是动态的,但是没有成功
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 :(得分: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])
}