2013-12-19 81 views
0

我想做一個小事情,當用戶在一個下拉菜單中選擇一個國家時,它應該在另一個下拉菜單中顯示相應的狀態。JavaScript使用變量值作爲另一個變量

例如,我國陣列是

var country_list = ["Afghanistan","Albania","Algeria","Andorra","India"]; 

和國家的狀態數組是一樣的東西

var Algeria=["state1", "state2", "state3"]; 
var Albania=["state1", "state2", "state3"]; 
var India=["Andaman Nicobar", "Andhra Pradesh", "Arunachal Pradesh"]; 
var Afghanistan=["state1", "state2", "state3"]; 

我通過

for(var i=0;i< country_list.length; i++) 
{ 
$('.country_select').append('<option 
value='+country_list[i]+'>'+country_list[i]+'</option>'); 
} 

,當用戶裝載國家選擇印度它應該加載所有印度國家。我正在使用開關案例,如

case "India": 
for(var i=0;i< India.length; i++) 
{ 
$('.state_details').append('<option value='+India[i]+'>'+India[i]+'</option>'); 
} 

該代碼工作正常。現在,如果我想添加另一個國家的狀態,那麼我必須添加另一個開關盒。 country_list陣列中共有206個國家/地區。因此,如果我想添加206國家的國家,我是否需要爲每個國家編寫206個切換案例?或者是否有任何簡單的方法來使變量值作爲另一個變量在JavaScript中?如果是這樣,那麼我可以通過國家列表中的選定值調用該數組。

我希望你能理解我的問題。在此先感謝

+2

只需使用屬性:* not *變量。 – user2864740

+0

@ user2864740請你詳細說明一下嗎? –

+1

你可以創建一個多維數組/對象。 – cocco

回答

4

您可以創建這樣的狀態的對象:

var States = { 
    Algeria: ["state1", "state2", "state3"], 
    Albania: ["state1", "state2", "state3"], 
    India: ["Andaman Nicobar", "Andhra Pradesh", "Arunachal Pradesh"], 
    Afghanistan: ["state1", "state2", "state3"] 
} 

然後你可以使用這樣的:

var States = State[Selected_State]; 
for(var i=0;i< States.length; i++) 
{ 
    $('.state_details').append('<option value='+States[i]+'>'+States[i]+'</option>'); 
} 

考慮Selected_State是與國家的字符串,如India

+0

會檢查它並讓你知道 –

相關問題