2013-09-26 79 views
0

在javascript中,聲明一個var的方法是:var msg ='hello',它只是簡單地調用msg將得到'hello'的值如果我現在有 一些var,例如msg_1,msg_2 ... msg_n是否有辦法通過調用類似於javascript/jquery得到一個變量的值

for (var i = 0; i < n; i++) 
{ 
var var_name = 'msg_' + i; 
alert (var_name)? 
} 
+1

'eval()'。攻擊者會討厭 – Johan

+4

使用[array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)而不是 –

+2

如果它是全局'alert(window [var_name])' 。 –

回答

2

您應該將值放入數組中。

var messages = ["first", "second", "third"]; 

for (var i = 0; i < n; i++) 
{ 
    alert (messages[i]) 
} 
2

我建議使用array而不是你在做什麼。

var myVarialbes= []; 
for (var i = 0; i < n; ++i) { 
    myVarialbes[i] = "some stuff" + i; 
} 
3

DEMO

for (var i = 0; i < 5; i++) { 
    var var_name = 'msg_' + i; 
    window[var_name] = i; 
    console.log(window[var_name]); 
} 
+1

你的意思是'window [var_name]':-) –

+0

@RocketHazmat是啊ty :) –

0

在這裏,你有一個簡單的方法:

var var_name=''; //declare variable only once 
for (var i = 0; i < 5; i++) //You should change 5 to n 
{ 
var_name = 'msg_' + i; 
alert (var_name.split('_')[1]); 
} 
+0

如果你不明白它是如何工作的不要點擊-1 – opuhliyvladyslav

0
function do_test(){ 
    var v1 = "variable 1"; 
    var v2 = "variable 2"; 
    var v3 = "variable 3"; 
    for (i=1;i<4;i++){ 
     var o = eval("v"+i); // you actually need this 
     alert (o); 
    } 
} 

但是你爲什麼不使用數組?