• jquery版三级联动select


    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=gbk />
    <title>selectList</title>
    <style type="text/css">
        *{margin:0;padding:0;}
        .selectList{width:200px;margin:50px auto;}
    </style>
    <script type="text/javascript" src="jquery1.7.1.js"></script>
    </head>
    <body>
        <div class="selectList">
            <select class="province">
                <option>请选择</option>
            </select>
            <select class="city">
                <option>请选择</option>
            </select>
            <select class="district">
                <option>请选择</option>
            </select>
        </div>
        <div class="selectList">
            <select class="province">
                <option>请选择</option>
            </select>
            <select class="city">
                <option>请选择</option>
            </select>
            <select class="district">
                <option>请选择</option>
            </select>
        </div>
        <script type="text/javascript">
        $(function(){
            $(".selectList").each(function(){
                var url = "area.json";
                var areaJson;
                var temp_html;
                var oProvince = $(this).find(".province");
                var oCity = $(this).find(".city");
                var oDistrict = $(this).find(".district");
                //初始化省
                var province = function(){
                    $.each(areaJson,function(i,province){
                        temp_html+="<option value='"+province.p+"'>"+province.p+"</option>";
                    });
                    oProvince.html(temp_html);
                    city();
                };
                //赋值市
                var city = function(){
                    temp_html = ""; 
                    var n = oProvince.get(0).selectedIndex;
                    $.each(areaJson[n].c,function(i,city){
                        temp_html+="<option value='"+city.ct+"'>"+city.ct+"</option>";
                    });
                    oCity.html(temp_html);
                    district();
                };
                //赋值县
                var district = function(){
                    temp_html = ""; 
                    var m = oProvince.get(0).selectedIndex;
                    var n = oCity.get(0).selectedIndex;
                    if(typeof(areaJson[m].c[n].d) == "undefined"){
                        oDistrict.css("display","none");
                    }else{
                        oDistrict.css("display","inline");
                        $.each(areaJson[m].c[n].d,function(i,district){
                            temp_html+="<option value='"+district.dt+"'>"+district.dt+"</option>";
                        });
                        oDistrict.html(temp_html);
                    };
                };
                //选择省改变市
                oProvince.change(function(){
                    city();
                });
                //选择市改变县
                oCity.change(function(){
                    district();
                });
                //获取json数据
                $.getJSON(url,function(data){
                    areaJson = data;
                    province();
                });
            });
        });
        </script>
    </body>
    </html>
    [
        {"p":"江西省",
        "c":[
            {"ct":"南昌市",
            "d":[
                {"dt":"西湖区"},
                {"dt":"东湖区"},
                {"dt":"高新区"}
            ]},
            {"ct":"赣州市",
            "d":[
                {"dt":"瑞金县"},
                {"dt":"南丰县"},
                {"dt":"全南县"}
            ]}
        ]},
        {"p":"北京",
        "c":[
            {"ct":"东城区"},
            {"ct":"西城区"}
        ]},
        {"p":"河北省",
        "c":[
            {"ct":"石家庄",
            "d":[
                {"dt":"长安区"},
                {"dt":"桥东区"},
                {"dt":"桥西区"}
            ]},
            {"ct":"唐山市",
            "d":[
                {"dt":"滦南县"},
                {"dt":"乐亭县"},
                {"dt":"迁西县"}
            ]}
        ]}
    ]
  • 相关阅读:
    从yield关键字看IEnumerable和Collection的区别 Clark
    Jquery ui widget开发 Clark
    .Net 中的反射(动态创建类型实例) Part.4 Clark
    迭代器学习之一:使用IEnumerable和IEnumerator接口 Clark
    6个重要的.NET概念:栈,堆,值类型,引用类型,装箱,拆箱 Clark
    学习之路二:关于集合和数组内在联系的深入了解 Clark
    值类型的装箱与拆箱浅析 Clark
    .Net 中的反射(查看基本类型信息) Part.2 Clark
    .Net 中的反射(反射特性) Part.3 Clark
    委托和事件(一) Clark
  • 原文地址:https://www.cnblogs.com/fyy-888/p/5314741.html
Copyright © 2020-2023  润新知