使用jquery解析xml实现省市区级联
- 首先要先准备好全国省市区级联的XML文件。areas.xml文件
这里只给一部分作为测试完整版下载
<?xml version="1.0" encoding="UTF-8"?>
<china>
<province name="北京市" code="110000">
<city name="北京市" code="110100">
<area name="东城区" code="110101"/>
<area name="西城区" code="110102"/>
<area name="崇文区" code="110103"/>
<area name="宣武区" code="110104"/>
<area name="朝阳区" code="110105"/>
<area name="丰台区" code="110106"/>
<area name="石景山区" code="110107"/>
<area name="海淀区" code="110108"/>
<area name="门头沟区" code="110109"/>
<area name="房山区" code="110111"/>
<area name="通州区" code="110112"/>
<area name="顺义区" code="110113"/>
<area name="昌平区" code="110114"/>
<area name="大兴区" code="110115"/>
<area name="怀柔区" code="110116"/>
<area name="平谷区" code="110117"/>
</city>
<city name="县" code="110200">
<area name="密云县" code="110228"/>
<area name="延庆县" code="110229"/>
</city>
</province>
</china>
- jquery解析xml的代码:
var docXml;
var code=0;
var cityCode=0;
$(function(){
$.get("../../xml/areas.xml",function(xml){
docXml=xml;
var provinceNodes=$(docXml).find("province");
var provinceStr='<option value="0">--请选择省份--</option>';
$.each(provinceNodes,function(index,item){
province=$(item).attr("name");
code=$(item).attr("code").substring(0,3);
provinceStr+='<option value="'+ code +'">'+ province +'</option>';
})
$("#province").html(provinceStr);
})
})
$("#province").on("change",function(){
var provinceCode=$("#province option:selected").val();
var cityNodes=$(docXml).find("city");
var cityStr='<option value="0">--请选择城市--</option>';
$(cityNodes).each(function(index,item){
cityCode=$(item).attr("code");
code=$(item).attr("code").substring(0,4);
if(cityCode.startsWith(provinceCode)){
cityStr+="<option value='"+ code +"'>"+ $(item).attr("name") +"</option>";
}
})
$("#city").html(cityStr);
})
$("#city").on("change",function(){
cityCode=$("#city option:selected").val();
var areaNodes=$(docXml).find("area");
var areaCode=0;
var areaStr='<option value="0">--请选择城市--</option>';
$(areaNodes).each(function(index,item){
areaCode=$(item).attr("code");
if(areaCode.startsWith(cityCode)){
areaStr+="<option value='0'>"+ $(item).attr("name") +"</option>";
}
})
$("#area").html(areaStr);
})
- html代码
<form id="myform">
<ul>
<li>
<label for="addr_name">收货地址:</label>
<select id="province">
</select>
<select id="city">
<option value="0">--请选择城市--</option>
</select>
<select id="area">
<option value="0">--请选择地区--</option>
</select>
</li>
</ul>
</form>