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;
$(document).ready(function (){
$('#area').empty();
$('#area').append('<option value="0">-请选择-</option>');
$.get('./ChinaArea.xml',function(msg){
xmldom = msg;
$(msg).find('province').each(function(k,v){
var nm = $(this).attr('province');
var id = $(this).attr('provinceID');
$('#province').append("<option value='"+id+"'>"+nm+"</option>");
});
},'xml');
});
function show_city(){
var pid = $('#province option:selected').val();
var two_pid = pid.substr(0,2);
$('#city').empty();
$('#city').append('<option value="0">-请选择-</option>');
$('#area').empty();
$('#area').append('<option value="0">-请选择-</option>');
$(xmldom).find('City[CityID^='+two_pid+']').each(function(){
var nm = $(this).attr('City');
var id = $(this).attr('CityID');
$('#city').append("<option value='"+id+"'>"+nm+"</option>");
});
}
function show_area(){
var cid = $('#city option:selected').val();
var two_cid = cid.substr(0,4);
$('#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');
$('#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>