JQuery实现省市县三级联动

JQuery实现省市县三级联动

1.页面结构

<body>
    <div id="wrap">
        <label for="province">省份:</label>
        <select name="" id="province">
            <option value="" selected>-选择省-</option>
        </select>
        <label for="city">城市:</label>
        <select name="" id="city">
            <option value="" selected>-选择市-</option>
        </select>
        <label for="county">县区:</label>
        <select name="" id="county">
            <option value="" selected>-选择县区-</option>
        </select>
    </div>
</body>

2.css样式

<style>
    #wrap { width: 500px; height: 200px; background: #eee; margin: 100px auto; padding: 20px; box-sizing: border-box; text-align: center; }
    #wrap select { width: 90px; }
</style>

3.JS代码
省市县信息.js

<script src="../js/中国省市县信息.js"></script>
<script>
       //定义变量,存储选中省份索引,城市索引
        var p_num, c_num;
        //填充省份列表
        $(provice).each(function (index, item) {
            createOP(item.name, "#province");
        });
        //监听省份列表的改变
        $("#province").change(function () {
            var selVal = $(this).find(":selected").text();
            $("#city").empty();  //每次省份改变,清空城市列表
            //找出所选择省份的索引
            for (var i in provice) {
                if (provice[i].name == selVal) {
                    p_num = i;
                    break;
                }
            }
            //遍历填充城市列表
            for (var i in provice[p_num].city) {
                createOP(provice[p_num].city[i].name, "#city");
            }

            //第一次选择省份,城市默认选择第一个,遍历下面的县区(调用city 的change方法)
            $("#city").change();
        });

        //监听城市列表的改变
        $("#city").change(function () {
            var selVal = $(this).find(":selected").text();
            $("#county").empty();  //每次城市改变,清空县区列表
            //找出所选择城市的索引
            for (var i in provice[p_num].city) {
                if (selVal == provice[p_num].city[i].name) {
                    c_num = i;
                    break;
                }
            }
            //遍历填充县区列表
            for (var i in provice[p_num].city[c_num].districtAndCounty) {
                createOP(provice[p_num].city[c_num].districtAndCounty[i], "#county");
            }
        });

        //创建自动生成 optionn 的函数
        function createOP(val, selector) {
            $("<option value=''></option>")
                .text(val)
                .appendTo(selector);
        }
</script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,513评论 1 45
  • 一、样式篇 第1章 初识jQuery (1)环境搭建 进入官方网站获取最新的版本 http://jquery.co...
    凛0_0阅读 8,915评论 0 44
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,713评论 1 92
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,183评论 0 3
  • 文/缙修 01. 1981年,农村兴起一股迷信风潮。 岱王村西边住着一家人,这对夫妻渴盼生一个儿子,可事与愿违,一...
    缙修阅读 5,454评论 18 14

友情链接更多精彩内容