使用原生Javascript实现城市选择逐级联动
2016-12-21 09:34
477 查看
最近研究某些网站的地点选择,其将所有站点名称存储到一个全局变量里面,通过函数调用该变量进行解析。
js代码部分
var cityList = {
浙江省:[
['杭州市',[
'滨江区'
]],
['宁波市',[
'海曙区'
]]
],
广东省:[
['广州市',[
'白云区',
'高新区'
]],
['深圳市',[
'某某区',
'某某区'
]]
]
};
function showcity(p)
{
var pro,city,x;
if(typeof(cityList[p])!='undefined')
{
pro = cityList[p];
var sec = document.getElementById('city');
sec.options.length=0;
for(var i=0;i<pro.length;i++)
{
var opt = document.createElement('option');
opt.value=pro[i][0];//城市值
opt.innerHTML = pro[i][0];
sec.appendChild(opt);
}
}
}
function showxian(pro,x)
{
var p = cityList[pro];
var city;
var xian;
if(typeof(p)!='undefined')
{
if(p.length!=0)
{
for(var i=0;i<p.length;i++)
{
if(p[i][0]==x)
{
var xian=document.getElementById('xian');
xian.options.length=0;
for(var j=0;j<p[i][1].length;j++)
{
var opt = document.createElement('option');
opt.value=p[i][1][j];
opt.innerHTML = opt.value;
xian.appendChild(opt);
}
}
}
}
}
}
基本思路就是,几级联动关系到数组选择维度,如要实现2级联动,需要一个二维数组存储数据。
<select onchange="showcity(this.value)" id="pro"> <option value="浙江省">浙江省</option> <option value="广东省">广东省</option> </select> <select id="city" onchange="var pro=document.getElementById('pro');showxian(pro.value,this.value)"> <option value="0">请选择城市</option> </select> <select name="xian" id="xian"> <option value="0">请选择县区</option> </select>
js代码部分
var cityList = {
浙江省:[
['杭州市',[
'滨江区'
]],
['宁波市',[
'海曙区'
]]
],
广东省:[
['广州市',[
'白云区',
'高新区'
]],
['深圳市',[
'某某区',
'某某区'
]]
]
};
function showcity(p)
{
var pro,city,x;
if(typeof(cityList[p])!='undefined')
{
pro = cityList[p];
var sec = document.getElementById('city');
sec.options.length=0;
for(var i=0;i<pro.length;i++)
{
var opt = document.createElement('option');
opt.value=pro[i][0];//城市值
opt.innerHTML = pro[i][0];
sec.appendChild(opt);
}
}
}
function showxian(pro,x)
{
var p = cityList[pro];
var city;
var xian;
if(typeof(p)!='undefined')
{
if(p.length!=0)
{
for(var i=0;i<p.length;i++)
{
if(p[i][0]==x)
{
var xian=document.getElementById('xian');
xian.options.length=0;
for(var j=0;j<p[i][1].length;j++)
{
var opt = document.createElement('option');
opt.value=p[i][1][j];
opt.innerHTML = opt.value;
xian.appendChild(opt);
}
}
}
}
}
}
相关文章推荐
- wheel自定义控件,实现城市三级联动,时间选择的功能简单使用
- Asp.Net2.0中TreeView使用javascript客户端实现选择节点联动的脚本
- wheel自定义控件,实现城市三级联动,时间选择的功能简单使用
- 使用javascript解析xml实现省市县三级联动
- javascript实现年月日的联动选择
- JS简单实现城市二级联动选择插件的方法
- 移动开发新选择 使用javascript开发iOS和Android原生应用
- 使用原生javascript实现瀑布流
- JS简单实现城市二级联动选择插件的方法
- javascript使用shift+click实现选择和反选checkbox的方法
- Android使用NumberPicker控件实现选择城市,生日
- 使用动态JavaScript实现多级菜单联动时不刷新页面的方法
- jquery实现城市选择器效果(二级联动)
- android json解析使用总结(三) — 三级城市联动的实现
- 使用JAVASCRIPT实现动态增加、删除选择项
- 前台技术--有关二级联动及多城市选择功能实现
- vs2005使用DropDownList实现省份城市的联动
- Javascript实现日期的联动选择代码
- jQuery-easyUI的使用:combobox实现联动选择及自动搜索
- 基于javascript实现全国省市二级联动下拉选择菜单