2012-07-27 68 views
0

我在脚本标记中有2个变量,这些变量用字符串值填充。 我也有一个.each循环遍历页面上的每个选择框。我想要一种方法将循环的索引值附加到变量的名称,并检索其值。引用一个JavaScript变量

var secQuestion1 = "bla" 
var secQuestion2 = "bla" 

    selectbox.each(function(index) { 
     var question = ['secQuestion' + (index+1) ]; 
     console.log("question = ", ['secQuestion' + (index+1)]) 
    }); 

我想我可能能够使用括号表示法检索值。 关于如何做到这一点的任何想法,所以在循环中的每个索引我会得到我的问题值?

+0

有趣的是,我没有看到任何jQuery在这里。你有没有看过文档? docs.jquery.com – Hogan 2012-07-27 19:27:39

+2

.each()是jQuery ... – 2012-07-27 19:28:20

+0

请添加将代码赋值给'selectbox'的代码。 – Bergi 2012-07-27 19:32:23

回答

1

这取决于在你的代码正在运行的情况下,如果你的变量是全局那么你可以做

window['secQuestion' + (index+1)] 

可以也把他们在一个对象,并访问它们的方式

var obj = { 
    secQuestion1: "bla", 
    secQuestion2: "bla" 
}; 
selectbox.each(function(index) { 
    console.log("question = ", obj['secQuestion' + (index+1)]) 
}); 
+0

这是一个可怕的,不可维护的技术。请停止向新手提倡全局变量。 – 2012-07-27 19:33:32

+1

@Alex Weinstein,我回答了他的问题,我没有提倡任何东西。仅仅因为你不喜欢全局变量并不意味着人们不应该了解它们并理解如何使用它们。 – hackattack 2012-07-27 19:37:34

+0

我在这里你Alex关于使用窗口方法的全局变量,但var obj方法完美地工作,并且变量不是全局的,因为它在jquery ready函数内。再次感谢。 – Chapsterj 2012-07-27 19:41:32

2

我在这里使用一个数组,例如:

var arrQuestions = ["question A", "question B", "questionC"]; 

selectbox.each(function(index) { 
    var question = arrQuestions[index]; 
}