三级联动选择地区!

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>
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的HTML三级联动地区选择框的示例代码: ```html <!DOCTYPE html> <html> <head> <title>三级联动地区选择框</title> <meta charset="utf-8"> <script type="text/javascript"> window.onload=function(){ var province=document.getElementById("province"); var city=document.getElementById("city"); var district=document.getElementById("district"); var provinceArr=["请选择省份","北京","上海","天津"]; var cityArr=[["请选择城市"],["海淀区","朝阳区","东城区"],["浦东新区","徐汇区","长宁区"],["和平区","河西区","河东区"]]; var districtArr=[[["请选择区/县"]],[["海淀区1","海淀区2","海淀区3"],["朝阳区1","朝阳区2","朝阳区3"],["东城区1","东城区2","东城区3"]],[["浦东新区1","浦东新区2","浦东新区3"],["徐汇区1","徐汇区2","徐汇区3"],["长宁区1","长宁区2","长宁区3"]],[["和平区1","和平区2","和平区3"],["河西区1","河西区2","河西区3"],["河东区1","河东区2","河东区3"]]]; for(var i=0;i<provinceArr.length;i++){ var option=document.createElement("option"); option.value=i; option.innerHTML=provinceArr[i]; province.appendChild(option); } province.onchange=function(){ city.length=1; district.length=1; if(this.value==0) return; for(var j=0;j<cityArr[this.value].length;j++){ var option=document.createElement("option"); option.value=j; option.innerHTML=cityArr[this.value][j]; city.appendChild(option); } } city.onchange=function(){ district.length=1; if(this.value==0) return; for(var k=0;k<districtArr[province.value][this.value].length;k++){ var option=document.createElement("option"); option.value=k; option.innerHTML=districtArr[province.value][this.value][k]; district.appendChild(option); } } } </script> </head> <body> <label>省份:</label> <select id="province"> <option value="0">请选择省份</option> </select> <label>城市:</label> <select id="city"> <option value="0">请选择城市</option> </select> <label>区/县:</label> <select id="district"> <option value="0">请选择区/县</option> </select> </body> </html> ``` 在这个示例中,我们定义了三个下拉选择框`province`、`city`和`district`,分别表示省份、城市和区/县。然后,我们通过JavaScript动态生成了三个数组`provinceArr`、`cityArr`和`districtArr`,用于存储省份、城市和区/县的选项,这些选项将在下拉选择框中显示。最后,我们通过`onchange`事件监听器来实现下拉选择框之间的联动。当省份选择框的值改变时,城市和区/县选择框中的选项也会随之改变。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值