Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
程序员文章站
2022-04-10 10:14:08
本文主要介绍使用 jquery+ajax+xml,首先需要一个包含我国所有地图信息的xml文档。
此处选用的xml文档(共1000多行)主要结构如下:
<...
本文主要介绍使用 jquery+ajax+xml,首先需要一个包含我国所有地图信息的xml文档。
此处选用的xml文档(共1000多行)主要结构如下:
<?xml version="1.0" encoding="utf-8"?> <area country="china"> <province id="1" provinceid="110000" province="北京市"> <city cityid="110100" city="市辖区"> <piecearea pieceareaid="110101" piecearea="东城区" /> <piecearea pieceareaid="110102" piecearea="西城区" /> <piecearea pieceareaid="110103" piecearea="崇文区" /> <piecearea pieceareaid="110104" piecearea="宣武区" /> <piecearea pieceareaid="110105" piecearea="朝阳区" /> <piecearea pieceareaid="110106" piecearea="丰台区" /> <piecearea pieceareaid="110107" piecearea="石景山区" /> <piecearea pieceareaid="110108" piecearea="海淀区" /> <piecearea pieceareaid="110109" piecearea="门头沟区" /> <piecearea pieceareaid="110111" piecearea="房山区" /> <piecearea pieceareaid="110112" piecearea="通州区" /> <piecearea pieceareaid="110113" piecearea="顺义区" /> <piecearea pieceareaid="110114" piecearea="昌平区" /> <piecearea pieceareaid="110115" piecearea="大兴区" /> <piecearea pieceareaid="110116" piecearea="怀柔区" /> <piecearea pieceareaid="110117" piecearea="平谷区" /> </city> <province>
制作对应的表单,根据设置选择省/市的动作:
<h2>地区三级联动菜单</h2> 省:<select id="province" onchange="showcity()"><option value="0">-请选择-</option></select> 市:<select id="city" onchange="showdistrict()"><option value="0">-请选择-</option></select> 地区:<select id="district"><option value="0">-请选择-</option></select>
以下是js代码行
//声明一个全局变量,用于存储第一次请求的xml信息,避免后续多次频繁请求xml var xmldom =null; //获取并显示省份信息 function showprovince(){ //使用ajax去服务器获得xml文件里面的省份信息 $.ajax({ url:'./chinaarea.xml', //data: datatype:'xml',//相当于调用responsexml type:'get', success:function(msg){ //将返回的xml信息赋予xmldom xmldom = msg; //获得province 元素节点对象 var prov = $(msg).find('province'); //遍历省份信息 prov.each(function(k,v){ var nm = $(this).attr('province'); var id = $(this).attr('provinceid'); //追加到指定的节点 $('#province').append("<option value="+id+">"+nm+"</option>"); }); } }); } //网页加载显示省份信息 $(function(){ showprovince(); }); function showcity(){ //获取 省份 的id var pid = $('#province option:selected').val(); //根据xmldom信息 找到指定的省份节点 var xml_province = $(xmldom).find('province[provinceid='+pid+']'); // 获取对应所有县市节点 var city = $(xml_province).find('city'); //在遍历追加前,先清空此前已经显示的信息 $('#city').empty(); $('#city').append('<option value="0">-请选择-</option>'); //遍历追加县市 city.each(function(k,v){ var nm = $(this).attr('city'); var id = $(this).attr('cityid'); $('#city').append('<option value='+id+'>'+nm+'</option>'); }); } //以下函数的逻辑与showcity()的逻辑一致 function showdistrict(){ //获取 县市 的id var cid = $('#city option:selected').val(); //根据xmldom信息 找到指定的县市节点 var xml_city = $(xmldom).find('city[cityid='+cid+']'); // 获取对应所有地区节点 var district = $(xml_city).find('piecearea'); $('#district').empty(); $('#district').append('<option value="0">-请选择-</option>'); district.each(function(k,v){ var nm = $(this).attr('piecearea'); var id = $(this).attr('pieceareaid'); $('#district').append('<option value='+id+'>'+nm+'</option>'); }); }
以上这篇jquery+ajax+xml实现中国地区选择三级联动菜单效果(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。