1

我知道你可能认为这是一个重复或愚蠢的问题。但答案对我没有帮助。

这是我的简单问题:

var option1 = "some text";
var option2 = "some text";
var option3 = "some text";

我想在 for 循环中访问元素“option1、option2、option3”:

for(var i = 1; i < 4; i++)
{
    alert(option+i);   
}

我知道它不应该是 option+i 但我不知道如何解决这个问题。

我在这里先向您的帮助表示感谢。

如果您发现这是重复的,请标记此问题。谢谢

4

4 回答 4

6

如果它们是window范围内的变量,那么您可以访问window['option'+i]. 但是,你真的应该只使用一个数组:

var option = [
    "some text",
    "option 2",
    "option 3"
];
for( var i=0; i<3; i++) alert(option[i]);
于 2012-07-17T04:17:26.317 回答
1

尝试这个:

var option1 = "some text";
var option2 = "some text";
var option3 = "some text";

for(var i = 1; i < 4; i++)
{
 alert(eval('option'+i) + '\n');
}

如果您尝试使用数组或通过windowKolink 发布的方式访问它,那就更好了。如果你确实使用eval了,请确保没有任何不受你控制的东西被认为是eval安全风险。

于 2012-07-17T04:19:59.420 回答
1

请试试这个:

    option = new Array();
    option[1] = "some text";
    option[2] = "some text";
    option[3] = "some text";
    for(var i = 1; i < 4; i++)
    {
        alert(option[i]);   
    }
于 2012-07-17T04:22:02.403 回答
0

将循环更改为如下所示:

for(var i = 1; i < 4; i++)
{
    alert(eval("option"+i));   
}

如果您有任何问题,请告诉我

于 2012-07-17T04:17:17.430 回答