三级联动选择地区!
2016-09-17 00:19
417 查看
1、原料:
* 中国地区信息(我在百度云放了ChinaArea.xml文件,自行下载) * 链接:http://pan.baidu.com/s/1pLapJZl 密码:ag34
2、思路:
* (1) HTML页面加载完成后用ajax去服务器把.xml的地区信息都给请求回来; * (2) 从中筛选省份信息并显示; * (3) 获得省份的名称和id遍历显示给下拉列表; * (4) 获得选取省份的id信息; * (5) 获得选取省份下的城市信息; * (6) 获得城市的名称和id遍历显示给下拉列表; * (7) 获得选取城市的id信息; * (8) 获得选取城市下的地区信息; * (9) 获得地区的名称和id遍历显示给下拉列表;
3、代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>三级联动选择地区</title> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <script type="text/javascript"> var xmldom = null;//声明一个全局变量,用于存储第一次请求回来的xml信息 //页面加载完成后显示省份 $(document).ready(function (){ //1、ajax去服务器把xml的地区信息都给请求回来; //2、从中筛选省份信息并显示; $('#area').empty(); $('#area').append('<option value="0">-请选择-</option>'); $.get('./ChinaArea.xml',function(msg){ xmldom = msg;//将请求回来的msg赋给xmldom。 //对服务器返回的xml信息进行处理 //需要在返回xml的XMLDocument节点里获得province元素节点(province是XMLDocument的子节点 ) //从父节点获得内部子节点 $(父节点).find(子节点选择器) //each遍历 $(msg).find('province').each(function(k,v){ //this分别依次代表每个province的dom对象 //获得省份的名称并显示给下拉列表 var nm = $(this).attr('province'); //获得省份编号 var id = $(this).attr('provinceID'); //给select框追加省份名称 $('#province').append("<option value='"+id+"'>"+nm+"</option>"); }); },'xml'); }); //显示城市 function show_city(){ //1、获得选取省份的id信息 var pid = $('#province option:selected').val(); var two_pid = pid.substr(0,2);//截取id信息的前两位。 //console.log(two_pid); //2、获得选取省份下的城市信息 //限制条件:City标签和本身id的前两位与省份id的前两位一致。 $('#city').empty();//清除旧节点 $('#city').append('<option value="0">-请选择-</option>');//追加-请选择- $('#area').empty(); $('#area').append('<option value="0">-请选择-</option>'); //遍历城市信息,并显示到页面 $(xmldom).find('City[CityID^='+two_pid+']').each(function(){ //this分别依次代表每个City节点的dom对象 var nm = $(this).attr('City');//选取City属性 //console.log(nm); var id = $(this).attr('CityID'); //console.log(id); //把nm与option结合显示到页面上 $('#city').append("<option value='"+id+"'>"+nm+"</option>"); }); } //显示地区 function show_area(){ //获取城市的id信息 var cid = $('#city option:selected').val(); var two_cid = cid.substr(0,4); //console.log(two_cid); $('#area').empty(); $('#area').append('<option value="0">-请选择-</option>'); $(xmldom).find('Piecearea[PieceareaID^='+two_cid+']').each(function(){ var nm = $(this).attr('Piecearea'); var id = $(this).attr('PieceareaID'); //console.log(id); $('#area').append("<option value='"+id+"'>"+nm+"</option>"); }); } </script> </head> <body align="center"> <h3>中国地区选择器:</h3> 省份: <select id="province" onchange="show_city()"> <option value="0">--请选择--</option> </select> 城市: <select id="city" onchange="show_area()"> <option value="0">--请选择--</option> </select> 地区: <select id="area"> <option value="0">--请选择--</option> </select> </body> </html>
相关文章推荐
- Android自定义WheelView地区选择三级联动
- android地区三级联动选择
- jquery地区选择三级联动
- 用php和ajax写一个省市区的三级联动,实现地区的下拉选择
- 地址的三级联动 选择后显示地区并返回服务器Id号(二)
- 地址的三级联动 选择后显示地区并返回服务器Id号(一)
- 三级联动---城市地区选择
- Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
- WheelView地区选择三级联动详解
- 地区选择三级联动
- js三级地区联动
- 【全网独享】基于springMvc经过改装的js+ajax的省市地区县街道四级联动弹出框(网上的都是三级联动的哦)
- 省、市、地区联动选择
- Android中使用开源框架Citypickerview实现省市区三级联动选择
- 移动端选择插件mobiscroll的使用demo(三级联动自定义)
- Android 省市县 三级联动选择(android-wheel的使用)
- ajax 省份地区三级联动
- 关于三级联动选择完成之后的产品显示问题
- Angularjs自定义指令之三级联动---地理位置的选择