使用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>