2

我有一个数组,我用它来遍历我存储在变量中的 div……但我想使用数组中的值作为我希望检查的变量名的一部分。

这是我尝试做的一个例子:

 var data_one = document.getElementById('test'),
     data_two = document.getElementById('test2'),
     array = ['one','two'];


 for (var i = 0; i < array.length; i++) { //error on this line

   if(parseInt(data_+array[i]) < 3){
         //do something
    }

 }

但我得到这个错误Uncaught ReferenceError: data_ is not defined

有没有办法使用数组值来像变量名一样工作?

4

3 回答 3

3

关于什么:

var data = [ 
    document.getElementById('test'), 
    document.getElementById('test2') 
];

for (var i = 0; i < data.length; i++) {
    if(parseInt(data[i]) < 3){
         //do something
    }
}

或与一个对象:

var data = { 
    'one': document.getElementById('test'), 
    'two': document.getElementById('test2') 
};

for (var i in data) {
    if(parseInt(data[i]) < 3){
         //do something
    }
}
于 2013-08-14T05:35:09.923 回答
0

使用eval将字符串评估为 javascript 代码

var data_a = 12;
var b = "a";

alert("data_"+b);       // alerts data_a
alert(eval("data_"+b));  // alerts 12

http://jsfiddle.net/ftGhd/

于 2013-08-14T05:37:45.403 回答
-2
var data_one = document.getElementById('test'),
     data_two = document.getElementById('test2'),
     array = ['one','two'];


 for (var i = 0; i < array.length; i++) {
   eval("var curr_array = data_"+array[i]);
   if(parseInt(curr_array) < 3){
         //do something
    }

 }
于 2013-08-14T05:34:57.733 回答