JQuery实现省市两级联动

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">    
  2. <html xmlns="http://www.w3.org/1999/xhtml">    
  3. <head>    
  4.     <title>省市两级联动选择</title>    
  5.     <style type="text/css">    
  6.         select    
  7.         {    
  8.             width: 135px;    
  9.         }    
  10.         fieldset dl dd    
  11.         {    
  12.             float: left;    
  13.             margin-left: 20px;    
  14.         }    
  15.         fieldset pre    
  16.         {    
  17.             width: 100%;    
  18.             height: 400px;    
  19.             overflow-y: scroll;    
  20.             overflow-x: hidden;    
  21.         }    
  22.     </style>    
  23.     <!-- jQuery库文件引入 -->    
  24.     <script language="javascript" type="text/javascript" src="JS/jquery-1.7.1.min.js"></script>    
  25.     <script type="text/javascript" language="javascript">    
  26.         //定义数组,存储省份信息    
  27.         var province = ["北京", "上海", "天津", "重庆", "浙江", "江苏", "广东", "福建", "湖南", "湖北", "辽宁",    
  28.                         "吉林", "黑龙江", "河北", "河南", "山东", "陕西", "甘肃", "新疆", "青海", "山西", "四川",    
  29.                         "贵州", "安徽", "江西", "云南", "内蒙古", "西藏", "广西", "宁夏", "海南", "香港", "澳门", "台湾"];    
  30.     
  31.         //定义数组,存储城市信息    
  32.         var beijing = ["东城区", "西城区", "海淀区", "朝阳区", "丰台区", "石景山区", "通州区", "顺义区", "房山区", "大兴区", "昌平区", "怀柔区", "平谷区", "门头沟区", "延庆县", "密云县"];    
  33.         var shanghai = ["浦东新区", "徐汇区", "长宁区", "普陀区", "闸北区", "虹口区", "杨浦区", "黄浦区", "卢湾区", "静安区", "宝山区", "闵行区", "嘉定区", "金山区", "松江区", "青浦区", "南汇区", "奉贤区", "崇明县"];    
  34.         var tianjing = ["河东", "南开", "河西", "河北", "和平", "红桥", "东丽", "津南", "西青", "北辰", "塘沽", "汉沽", "大港", "蓟县", "宝坻", "宁河", "静海", "武清"];    
  35.         var chongqing = ["渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "万盛区", "双桥区", "渝北区", "巴南区", "万州区", "涪陵区", "黔江区", "长寿区", "江津区", "合川区", "永川区", "南川区"];    
  36.         var jiangsu = ["南京", "无锡", "常州", "徐州", "苏州", "南通", "连云港", "淮安", "扬州", "盐城", "镇江", "泰州", "宿迁"];    
  37.         var zhejiang = ["杭州", "宁波", "温州", "嘉兴", "湖州", "绍兴", "金华", "衢州", "舟山", "台州", "利水"];    
  38.         var guangdong = ["广州", "韶关", "深圳", "珠海", "汕头", "佛山", "江门", "湛江", "茂名", "肇庆", "惠州", "梅州", "汕尾", "河源", "阳江", "清远", "东莞", "中山", "潮州", "揭阳"];    
  39.         var fujiang = ["福州", "厦门", "莆田", "三明", "泉州", "漳州", "南平", "龙岩", "宁德"];    
  40.         var hunan = ["长沙", "株洲", "湘潭", "衡阳", "邵阳", "岳阳", "常德", "张家界", "益阳", "郴州", "永州", "怀化", "娄底", "湘西土家苗族自治区"];    
  41.         var hubei = ["武汉", "襄阳", "黄石", "十堰", "宜昌", "鄂州", "荆门", "孝感", "荆州", "黄冈", "咸宁", "随州", "恩施土家族苗族自治州"];    
  42.         var liaoning = ["沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", "营口", "阜新", "辽阳", "盘锦", "铁岭", "朝阳", "葫芦岛"];    
  43.         var jilin = ["长春", "吉林", "四平", "辽源", "通化", "白山", "松原", "白城", "延边朝鲜族自治区"];    
  44.         var heilongjiang = ["哈尔滨", "齐齐哈尔", "鸡西", "牡丹江", "佳木斯", "大庆", "伊春", "黑河", "大兴安岭"];    
  45.         var hebei = ["石家庄", "保定", "唐山", "邯郸", "承德", "廊坊", "衡水", "秦皇岛", "张家口"];    
  46.         var henan = ["郑州", "洛阳", "商丘", "安阳", "南阳", "开封", "平顶山", "焦作", "新乡", "鹤壁", "许昌", "漯河", "三门峡", "信阳", "周口", "驻马店", "济源"];    
  47.         var shandong = ["济南", "青岛", "菏泽", "淄博", "枣庄", "东营", "烟台", "潍坊", "济宁", "泰安", "威海", "日照", "滨州", "德州", "聊城", "临沂"];    
  48.         var shangxi = ["西安", "宝鸡", "咸阳", "渭南", "铜川", "延安", "榆林", "汉中", "安康", "商洛"];    
  49.         var gansu = ["兰州", "嘉峪关", "金昌", "金川", "白银", "天水", "武威", "张掖", "酒泉", "平凉", "庆阳", "定西", "陇南", "临夏", "合作"];    
  50.         var qinghai = ["西宁", "海东地区", "海北藏族自治州", "黄南藏族自治州", "海南藏族自治州", "果洛藏族自治州", "玉树藏族自治州", "海西蒙古族藏族自治州"];    
  51.         var xinjiang = ["乌鲁木齐", "奎屯", "石河子", "昌吉", "吐鲁番", "库尔勒", "阿克苏", "喀什", "伊宁", "克拉玛依", "塔城", "哈密", "和田", "阿勒泰", "阿图什", "博乐"];    
  52.         var shanxi = ["太原", "大同", "阳泉", "长治", "晋城", "朔州", "晋中", "运城", "忻州", "临汾", "吕梁"];    
  53.         var sichuan = ["成都", "自贡", "攀枝花", "泸州", "德阳", "绵阳", "广元", "遂宁", "内江", "乐山", "南充", "眉山", "宜宾", "广安", "达州", "雅安", "巴中", "资阳", "阿坝藏族羌族自治州", "甘孜藏族自治州", "凉山彝族自治州"];    
  54.         var guizhou = ["贵阳", "六盘水", "遵义", "安顺", "黔南布依族苗族自治州", "黔西南布依族苗族自治州", "黔东南苗族侗族自治州", "铜仁", "毕节"];    
  55.         var anhui = ["合肥", "芜湖", "安庆", "马鞍山", "阜阳", "六安", "滁州", "宿州", "蚌埠", "巢湖", "淮南", "宣城", "亳州", "淮北", "铜陵", "黄山", "池州"];    
  56.         var jiangxi = ["南昌", "九江", "景德镇", "萍乡", "新余", "鹰潭", "赣州", "宜春", "上饶", "吉安", "抚州"];    
  57.         var yunnan = ["昆明", "曲靖", "玉溪", "保山", "昭通", "丽江", "普洱", "临沧", "楚雄彝族自治州", "大理白族自治州", "红河哈尼族彝族自治州", "文山壮族苗族自治州", "西双版纳傣族自治州", "德宏傣族景颇族自治州", "怒江傈僳族自治州", "迪庆藏族自治州"];    
  58.         var neimenggu = ["呼和浩特", "包头", "乌海", "赤峰", "通辽", "鄂尔多斯", "呼伦贝尔", "巴彦淖尔", "乌兰察布"];    
  59.         var guangxi = ["南宁", "柳州", "桂林", "梧州", "北海", "防城港", "钦州", "贵港", "玉林", "百色", "贺州", "河池", "崇左"];    
  60.         var xizang = ["拉萨", "昌都地区", "林芝地区", "山南地区", "日喀则地区", "那曲地区", "阿里地区"];    
  61.         var ningxia = ["银川", "石嘴山", "吴忠", "固原", "中卫"];    
  62.         var hainan = ["海口", "三亚"];    
  63.        var xianggang = ["中西区", "湾仔区", "东区", "南区", "九龙城区", "油尖旺区", "观塘区", "黄大仙区", "深水埗区", "北区", "大埔区", "沙田区", "西贡区", "元朗区", "屯门区", "荃湾区", "葵青区", "离岛区"];    
  64.         var taiwan = ["台北", "高雄", "基隆", "台中", "台南", "新竹", "嘉义"];    
  65.         var aomeng = ["澳门半岛", "氹仔岛", "路环岛"];    
  66.     
  67.         //页面加载方法    
  68.         $(function () {    
  69.             //设置省份数据    
  70.             setProvince();    
  71.     
  72.             //设置背景颜色    
  73.             setBgColor();    
  74.         });    
  75.     
  76.     
  77.         //设置省份数据    
  78.         function setProvince() {    
  79.             //给省份下拉列表赋值    
  80.             var option, modelVal;    
  81.             var $sel = $("#selProvince");    
  82.     
  83.             //获取对应省份城市    
  84.             for (var i = 0len = province.length; i < len; i++) {    
  85.                 modelVal = province[i];    
  86.                 option = "<option value='" + modelVal + "'>" + modelVal + "</option>";    
  87.     
  88.                 //添加到 select 元素中    
  89.                 $sel.append(option);    
  90.             }    
  91.     
  92.             //调用change事件,初始城市信息    
  93.             provinceChange();    
  94.         }    
  95.     
  96.     
  97.         //根据选中的省份获取对应的城市    
  98.         function setCity(provinec) {    
  99.             var $city = $("#selCity");    
  100.             var proCity, option, modelVal;    
  101.     
  102.             //通过省份名称,获取省份对应城市的数组名    
  103.             switch (provinec) {    
  104.                 case "北京":    
  105.                     proCity = beijing;    
  106.                     break;    
  107.                 case "上海":    
  108.                     proCity = shanghai;    
  109.                     break;    
  110.                 case "天津":    
  111.                     proCity = tianjing;    
  112.                     break;    
  113.                 case "重庆":    
  114.                     proCity = chongqing;    
  115.                     break;    
  116.                 case "浙江":    
  117.                     proCity = zhejiang;    
  118.                     break;    
  119.                 case "江苏":    
  120.                     proCity = jiangsu;    
  121.                     break;    
  122.                 case "广东":    
  123.                     proCity = guangdong;    
  124.                     break;    
  125.                 case "福建":    
  126.                     proCity = fujiang;    
  127.                     break;    
  128.                 case "湖南":    
  129.                     proCity = hunan;    
  130.                     break;    
  131.                 case "湖北":    
  132.                     proCity = hubei;    
  133.                     break;    
  134.                 case "辽宁":    
  135.                     proCity = liaoning;    
  136.                     break;    
  137.                 case "吉林":    
  138.                     proCity = jilin;    
  139.                     break;    
  140.                 case "黑龙江":    
  141.                     proCity = heilongjiang;    
  142.                     break;    
  143.                 case "河北":    
  144.                     proCity = hebei;    
  145.                     break;    
  146.                 case "河南":    
  147.                     proCity = henan;    
  148.                     break;    
  149.                 case "山东":    
  150.                     proCity = shandong;    
  151.                     break;    
  152.                 case "陕西":    
  153.                     proCity = shangxi;    
  154.                     break;    
  155.                 case "甘肃":    
  156.                     proCity = gansu;    
  157.                     break;    
  158.                 case "新疆":    
  159.                     proCity = xinjiang;    
  160.                     break;    
  161.                 case "青海":    
  162.                     proCity = qinghai;    
  163.                     break;    
  164.                 case "山西":    
  165.                     proCity = shanxi;    
  166.                     break;    
  167.                 case "四川":    
  168.                     proCity = sichuan;    
  169.                     break;    
  170.                 case "贵州":    
  171.                     proCity = guizhou;    
  172.                     break;    
  173.                 case "安徽":    
  174.                     proCity = anhui;    
  175.                     break;    
  176.                 case "江西":    
  177.                     proCity = jiangxi;    
  178.                     break;    
  179.                 case "云南":    
  180.                     proCity = yunnan;    
  181.                     break;    
  182.                 case "内蒙古":    
  183.                     proCity = neimenggu;    
  184.                     break;    
  185.                 case "西藏":    
  186.                     proCity = xizang;    
  187.                     break;    
  188.                 case "广西":    
  189.                     proCity = guangxi;    
  190.                     break;    
  191.                 case "":    
  192.                     proCity = xizang;    
  193.                     break;    
  194.                 case "宁夏":    
  195.                     proCity = ningxia;    
  196.                     break;    
  197.                 case "海南":    
  198.                     proCity = hainan;    
  199.                     break;    
  200.                 case "香港":    
  201.                     proCity = xianggang;    
  202.                     break;    
  203.                 case "澳门":    
  204.                     proCity = aomeng;    
  205.                     break;    
  206.                 case "台湾":    
  207.                     proCity = taiwan;    
  208.                     break;    
  209.             }    
  210.     
  211.             //先清空之前绑定的值    
  212.             $city.empty();    
  213.     
  214.             //设置对应省份的城市    
  215.             for (var i = 0len = proCity.length; i < len; i++) {    
  216.                 modelVal = proCity[i];    
  217.                 option = "<option value='" + modelVal + "'>" + modelVal + "</option>";    
  218.     
  219.                 //添加    
  220.                 $city.append(option);    
  221.             }    
  222.     
  223.             //设置背景    
  224.             setBgColor();    
  225.         }    
  226.     
  227.     
  228.         //省份选中事件    
  229.         function provinceChange() {    
  230.             var $pro = $("#selProvince");    
  231.             setCity($pro.val());    
  232.         }    
  233.     
  234.     
  235.         //设置下拉列表间隔背景样色    
  236.         function setBgColor() {    
  237.             var $option = $("select option:odd");    
  238.             $option.css({ "background-color": "#DEDEDE" });    
  239.         }    
  240.     </script>    
  241. </head>    
  242. <body>    
  243.     <fieldset>    
  244.         <legend>中国三级行政单位联动</legend>    
  245.         <dl>    
  246.             <dd>    
  247.                 省  份:<select id="selProvince" onchange="provinceChange();"></select>    
  248.             </dd>    
  249.             <dd>    
  250.                 市(区):<select id="selCity"></select>    
  251.             </dd>    
  252.         </dl>    
  253.     </fieldset>    
  254. </body>    
  255. </html>    

效果图如下:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的jQuery省市区三级联动示例: HTML代码: ``` <select id="province"> <option value="">请选择省份</option> <option value="1">北京市</option> <option value="2">上海市</option> <option value="3">广东省</option> </select> <br> <select id="city"> <option value="">请选择城市</option> </select> <br> <select id="district"> <option value="">请选择区县</option> </select> ``` jQuery代码: ``` $(function(){ // 省份改变事件 $('#province').change(function(){ var provinceId = $(this).val(); if(provinceId){ $.ajax({ type:'POST', url:'getCity.php', data:{provinceId:provinceId}, dataType:'json', success:function(data){ var cityOptions = '<option value="">请选择城市</option>'; $.each(data,function(index,city){ cityOptions += '<option value="'+city.id+'">'+city.name+'</option>'; }); $('#city').html(cityOptions); $('#district').html('<option value="">请选择区县</option>'); } }); }else{ $('#city').html('<option value="">请选择城市</option>'); $('#district').html('<option value="">请选择区县</option>'); } }); // 城市改变事件 $('#city').change(function(){ var cityId = $(this).val(); if(cityId){ $.ajax({ type:'POST', url:'getDistrict.php', data:{cityId:cityId}, dataType:'json', success:function(data){ var districtOptions = '<option value="">请选择区县</option>'; $.each(data,function(index,district){ districtOptions += '<option value="'+district.id+'">'+district.name+'</option>'; }); $('#district').html(districtOptions); } }); }else{ $('#district').html('<option value="">请选择区县</option>'); } }); }); ``` 这个示例假设有两个后端脚本:getCity.php和getDistrict.php,用于返回城市和区县数据。这两个脚本的具体实现可以根据具体需求来编写。同时需要注意,这个示例中的jQuery代码需要jQuery库加载完成后才能执行,所以最好将它放在$(document).ready()或$(function(){})函数中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值