我正在尝试做一件小事,当用户在一个下拉列表中选择一个国家/地区时,它应该在另一个下拉列表中显示相应的状态。
例如,我的国家/地区数组
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中的另一个变量?如果是,那么我可以通过国家/地区列表中的选定值调用数组。
我希望你理解我的问题。提前致谢
答案 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
。