zoukankan      html  css  js  c++  java
  • JavaScript 实现省市二级联动

    JavaScript 实现省市二级联动

       版权声明:未经授权,严禁转载!  


    案例代码 

    <style>
        .hide {
            display: none;
        }
    </style>
    
    <select name="provs">
        <option>请选择</option>    <!-- 0 -->
        <option>北京市</option>    <!-- 1 -->
        <option>天津市</option>    <!-- 2 -->
        <option>河北省</option>
    </select>
    <select name="cities" class="hide">
    
    </select>
    
    
    <script>
        /* 实现省市联机操作 */
        var cities = [
            [{"name": '东城区', "value": 101},//cities[0][0]["name"]
                {"name": '西城区', "value": 102},
                {"name": '海淀区', "value": 103},
                {"name": '朝阳区', "value": 104}],
            [{"name": '河东区', "value": 201},
                {"name": '河西区', "value": 202},
                {"name": '南开区', "value": 303}],
            [{"name": '石家庄市', "value": 301},
                {"name": '廊坊市', "value": 302},
                {"name": '保定市', "value": 303},
                {"name": '唐山市', "value": 304},
                {"name": '秦皇岛市', "value": 304}]
        ];
    
        // 触发事件的元素
        var selProvs = document.getElementsByName("provs")[0];
        var selCts = document.getElementsByName("cities")[0];
        // 绑定事件处理函数,当选项发生变化时
        selProvs.onchange = function () {
            // 获取用户选择 option 所在的下标 selProvs.selectedIndex;
            var i = selProvs.selectedIndex;
            // console.log(i)
            // 判断用户是否未选择的是任何省。
            if (i == 0) selCts.className = "hide";
            else {
                selCts.className = ""; // 显示
                selCts.innerHTML = ""; // 清空之前的
                // 去数组 cities 中获取 i - 1 对应的子数组
                var cts = cities[i - 1];
                // 创建文档片段
                var frag = document.createDocumentFragment();
                // 添加第一个 option 请选择
                var option = document.createElement("option");
                option.innerHTML = "请选择";
                frag.appendChild(option);
                // 遍历数组
                for (var i = 0; i < cts.length; i++) {
                    // 创建 option
                    var option = document.createElement("option");
                    // 给option添加内容和value
                    option.innerHTML = cts[i]["name"];
                    option.value = cts[i]["value"];
                    // 将 option添加到文档片段
                    frag.appendChild(option);
                }
                // 将 文档片段添加到 cities 中
                selCts.appendChild(frag);
    
            }
    
    
        }
    
    </script>

        

  • 相关阅读:
    [转]html之file标签 --- 图片上传前预览 -- FileReader
    常用正则表达式
    c# color 颜色代码
    WebForm 母版页使用
    iframe同域自适应问题
    完整版AJAX
    AJAX基础
    jQuery 小特效【文本框折叠隐藏,展开显示】【下拉菜单】【颜色渐变】【弹窗+遮罩】
    JQuery中的Dom操作和事件
    LINQ 【增、删、改、查】数据绑定
  • 原文地址:https://www.cnblogs.com/wjw1014/p/9002186.html
Copyright © 2011-2022 走看看