Javascript使用变量值作为另一个变量

时间:2013-12-19 10:50:45

标签: javascript jquery

我正在尝试做一件小事,当用户在一个下拉列表中选择一个国家/地区时,它应该在另一个下拉列表中显示相应的状态。

例如,我的国家/地区数组

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中的另一个变量?如果是,那么我可以通过国家/地区列表中的选定值调用数组。

我希望你理解我的问题。提前致谢

1 个答案:

答案 0 :(得分: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