带完整省市json数据的jquery省市二级联动代码

做表单涉及到地址地区时,经常需要做地区联动,比如省市二级联动、省市县三级联动以及更深层次的省市县镇街道联运等,下面的代码是最常用到的省市二级联动,附带了完整的json数据,其实做地区联动不难,麻烦的是弄对应的地区数据。

引入省市数据文件

json数据保存为area.js文件后,引入文件json数据太长,放在文章末尾了,请在文章末复制)

<script src="area.js"></script>

HTML代码:

<form>	
	<select name="province" onchange="getcity(this)">
		<option selected="selected" value="all">请选择</option>
	</select> 	
	<select name="city">
		<option selected="selected" value="all">请选择</option>
	</select>
</form>

jQuery代码:

$(function() {
    var options = '';
	$.each(citydata, function (key, value) {
		//根据数据创建option并追加到select上
		var option = "<option value=" + key + ">" + key + "</option>";
		options += option;
	});
	$("[name='province']").append(options);
});
function getcity(pro){
	var province = $(pro).val();
	var city = $("[name='city']");
	//找到市的信息
	var citys = citydata[province];
	//删除原来市的信息
	city.empty();
	city.append("<option value='all'>请选择</option>");
	//添加option
	$.each(citys, function (index, item) {
		city.append("<option value='"+item+"'>" + item + "</option>");
	});
}

省市json数据

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

原文地址:https://www.cnblogs.com/enenen/p/9323771.html(原文jq代码有两处错误,上面已经调整过来了)。