js的二级联动实现省份城市的选择

先上html代码:

<select id="province" name="province" οnchange="selectMoreCity(this)">

 <option>请选择省/城市</option>

 </select>

js代码:

<script type="text/javascript">

/* 定义城市 */
var china = [
        // 直辖市
        [ '北京' ],
        [ '上海' ],
        [ '天津' ],
        [ '重庆' ],
        // 华北地区
        [ '河北', '石家庄', '唐山', '秦皇岛', '邯郸', '邢台', '保定', '张家口', '承德', '沧州', '廊坊',
                '衡水' ],
        [ '山西', '太原', '大同', '阳泉', '长治', '晋城', '朔州', '晋中', '运城', '忻州', '临汾',
                '吕梁' ],
        [ '内蒙古自治区', '呼和浩特', '包头', '乌海', '赤峰', '通辽', '鄂尔多斯', '呼伦贝尔', '巴彦淖尔',
                '乌兰察布', '兴安', '锡林郭勒', '阿拉善' ],
        // 东北地区
        [ '辽宁', '沈阳', '大连', '鞍山', '抚顺', '本溪', '丹东', '锦州', '营口', '阜新', '辽阳',
                '盘锦', '铁岭', '朝阳', '葫芦岛' ],
        [ '吉林', '长春', '吉林', '四平', '辽源', '通化', '白山', '松原', '白城', '延边' ],
        [ '黑龙江', '哈尔滨', '齐齐哈尔', '鸡西', '鹤岗', '双鸭山', '大庆', '伊春', '佳木斯', '七台河',
                '牡丹江', '黑河', '绥化', '大兴安岭' ],
        // 华东地区
        [ '江苏', '南京', '无锡', '徐州', '常州', '苏州', '南通', '连云港', '淮安', '盐城', '扬州',
                '镇江', '泰州', '宿迁' ],
        [ '浙江', '杭州', '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州',
                '丽水' ],
        [ '安徽', '合肥', '芜湖', '蚌埠', '淮南', '马鞍山', '淮北', '铜陵', '安庆', '黄山', '滁州',
                '阜阳', '宿州', '巢湖', '六安', '亳州', '池州', '宣城' ],
        [ '福建', '福州', '厦门', '莆田', '三明', '泉州', '漳州', '南平', '龙岩', '宁德' ],
        [ '江西', '南昌', '景德镇', '萍乡', '九江', '新余', '鹰潭', '赣州', '吉安', '宜春', '抚州',
                '上饶' ],
        [ '山东', '济南', '青岛', '淄博', '枣庄', '东营', '烟台', '潍坊', '威海', '济宁', '泰安',
                '日照', '莱芜', '临沂', '德州', '聊城', '滨州', '菏泽' ],
        // 中南地区
        [ '河南', '郑州', '开封', '洛阳', '平顶山', '焦作', '鹤壁', '新乡', '安阳', '濮阳', '许昌',
                '漯河', '三门峡', '南阳', '商丘', '信阳', '周口', '驻马店' ],
        [ '湖北', '武汉', '黄石', '襄樊', '十堰', '荆州', '宜昌', '荆门', '鄂州', '孝感', '咸宁',
                '随州', '恩施' ],
        [ '湖南', '长沙', '株洲', '湘潭', '衡阳', '邵阳', '岳阳', '常德', '张家界', '益阳', '郴州',
                '永州', '怀化', '娄底', '湘西' ],
        [ '广东', '广州', '深圳', '珠海', '汕头', '韶关', '佛山', '江门', '湛江', '茂名', '肇庆',
                '惠州', '梅州', '汕尾', '河源', '阳江', '清远', '东莞', '中山', '潮州', '揭阳',
                '云浮' ],
        [ '广西自治区', '南宁', '柳州', '桂林', '梧州', '北海', '防城港', '钦州', '贵港', '玉林', '百色',
                '贺州', '河池', '来宾', '崇左' ],
        [ '海南', '海口', '三亚' ],
        // 西南地区
        [ '四川', '成都', '自贡', '攀枝花', '泸州', '德阳', '绵阳', '广元', '遂宁', '内江', '乐山',
                '南充', '宜宾', '广安', '达州', '眉山', '雅安', '巴中', '资阳', "阿坝", "甘孜",
                "凉山" ],
        [ '贵州', '贵阳', "六盘水", "遵义", "安顺", "铜仁", "毕节", "黔西南", "黔东南", "黔南" ],
        [ '云南', '昆明', '曲靖', '玉溪', "保山", "昭通", "丽江", "普洱", "临沧", "文山", "红河",
                "西双版纳", "楚雄", "大理", "德宏", "怒江", "迪庆" ],
        [ '西藏自治区', "拉萨", "昌都", "山南", "日喀则", "那曲", "阿里", "林芝" ],
        // 西北地区
        [ '陕西', '西安', '铜川', '宝鸡', '咸阳', '渭南', '延安', '汉中', '榆林', '安康', '商洛' ],
        [ '甘肃', "兰州", "嘉峪关", "金昌", "白银", "天水", "武威", "张掖", "平凉", "酒泉", "庆阳",
                "定西", "陇南", "临夏", "甘南" ],
        [ '青海', "西宁", "海东", "海北", "黄南", "海南", "果洛", "玉树", "海西" ],
        [ '宁夏自治区', '银川', "石嘴山", "吴忠", "固原", "中卫" ],
        [ '新疆自治区', '乌鲁木齐', "克拉玛依", "吐鲁番", "哈密", "和田", "阿克苏", "喀什", "克孜勒苏柯尔克孜",
                "巴音郭楞蒙古", "昌吉", "博尔塔拉蒙古", "伊犁哈萨克", "塔城", "阿勒泰" ],
        // 港澳台
        [ '香港特别行政区' ], [ '澳门特别行政区' ],
        [ '台湾', "台北", "高雄", "基隆", "台中", "台南", "新竹", "嘉义" ] ];

// 在页面内容都加载完了再执行

$(document).ready(function() {

    BindProvince()

})

 

function BindProvince() {

    var opt0 = "请选择省/城市";

    var ProvinceCount = china.length;

    var province = document.getElementById("province");

    province.innerHTML = "";

    province.options[0] = new Option(opt0, "");

    for (var i = 0; i < ProvinceCount; i++) {

        province.options[i + 1] = new Option(china[i][0], china[i][0]);

    }

}

function selectMoreCity(sbj) {

    var opt0 = "请选择城市/地区";

    if (sbj.selectedIndex == 0) {

        var city = document.getElementById("city");

        city.innerHTML = "";

        city.options[0] = new Option(opt0, "");

        return;

    }

    var selectProvince = sbj.options[sbj.selectedIndex].value;
    var ProvinceCount = china.length;

    for (var i = 0; i < ProvinceCount; i++) {

        if (china[i][0] == selectProvince) {

            var cityCount = china[i].length;

            var city = document.getElementById("city");

            city.innerHTML = "";

            city.options[0] = new Option(opt0, "");

            for (var j = 0; j < cityCount; j++) {

                if (cityCount == 1 && j == 0) {

                   city.options[j + 1] = new Option(china[i][j], china[i][j]);

                    j = 1;

                } else if (cityCount > 1 && j == 0) {

                    j = 1;

                    city.options[j] = new Option(china[i][j], china[i][j]);

                } else {

                    city.options[j] = new Option(china[i][j], china[i][j]);

                }

                if (j == 1) {

                    city.options[1].selected = true;

                }

            }

            break;

        }

    }

}

 

</script>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值