2012-07-27 83 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]; 
}