2013-12-19 83 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

会检查它并让你知道 –

相关问题