首页 > 代码库 > JS 省市区三级联动

JS 省市区三级联动

JS 省市区三级联动:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>JS 省市区三级联动</title></head><body>  <select id="selProvince" name="province">    </select>  <select id="selCity" name="city">    </select>   <select id="selDist" name="area">    </select>  <div></div><script type="text/javascript">  var temp;var P = new Array();var C = new Array();var D = new Array();P = new Array("北京","上海","天津","重庆","广东","四川","浙江","贵州","辽宁","江苏","福建","河北","河南"," 吉林","黑龙江","山东","安徽","广西","海南","内蒙古","山西","宁夏","甘肃","陕西","青海","湖北","湖南"," 江西","云南","新疆","香港","澳门");/*北京    */ C[0] = new Array("北京");/*上海    */ C[1] = new Array("上海");/*天津    */ C[2] = new Array("天津");/*重庆    */ C[3] = new Array("重庆");/*广东    */ C[4] = new Array("广州","深圳","珠海","佛山","惠州","东莞","中山","江门","湛江","汕头");/*四川    */ C[5] = new Array("成都","自贡市","攀枝花","泸州");/*浙江    */ C[6] = new Array("杭州","宁波","嘉兴","绍兴","温州","金华","衢州","舟山","台州","丽水","湖州");/*贵州    */ C[7] = new Array("贵阳");/*辽宁    */ C[8] = new Array("沈阳","大连");/*江苏    */ C[9] = new Array("南京","苏州","南通","无锡","盐城","徐州","常州","连云港","常熟","扬州","镇江","泰州","昆山","吴江");/*福建    */C[10] = new Array("福州","厦门","泉州");/*河北    */C[11] = new Array("石家庄","唐山","邯郸","保定","廊坊","衡水","秦皇岛");/*河南    */C[12] = new Array("郑州","洛阳");/*吉林    */C[13] = new Array("长春","吉林");/*黑龙江  */C[14] = new Array("哈尔滨");/*山东    */C[15] = new Array("济南","青岛","威海","烟台","潍坊","日照","临沂","淄博");/*安徽    */C[16] = new Array("合肥","芜湖","马鞍山");/*广西    */C[17] = new Array("南宁","桂林","北海","柳州");/*海南    */C[18] = new Array("海南","三亚");/*内蒙古  */C[19] = new Array("呼和浩特","包头");/*山西    */C[20] = new Array("太原");/*宁夏    */C[21] = new Array("银川");/*甘肃    */C[22] = new Array("兰州");/*陕西    */C[23] = new Array("西安");/*青海    */C[24] = new Array("西宁");/*湖北    */C[25] = new Array("武汉","宜昌");/*湖南    */C[26] = new Array("长沙","株洲","湘潭");/*江西    */C[27] = new Array("南昌","赣州");/*云南    */C[28] = new Array("昆明");/*新疆    */C[29] = new Array("乌鲁木齐");/*香港    */C[30] = new Array("香港");/*澳门    */C[31] = new Array("澳门");/*台湾    */C[31] = new Array("台北");for(temp in C){    D[temp] = new Array();}/*北京    */D[0][0] = new Array("海淀区,朝阳区,东城区,西城区,崇文区,宣武区,丰台区,石景山,房山区,门头沟,通州区,顺义区,昌平区,密云区,怀柔区,延庆区,平谷区,大兴区,燕郊区");/*上海    */D[1][0] = new Array("黄浦区、卢湾区、徐汇区、徐家汇、长宁区、静安区、普陀区、闸北区 虹口区、杨浦区、宝山区、闵行区、嘉定区、浦东新区、松江区、金山区、青浦区、南汇区、奉贤区、崇明县");/*天津    */D[2][0] = new Array("和平,西青,北辰,大港,南开,河东,河西,河北,津南,红桥,塘沽,汉沽,东丽,宝坻,蓟县,武清,宁河,静海,开发区");/*重庆    */D[3][0] = new Array("南岸,渝北,万盛,大渡口,万州,北碚,沙坪坝,巴南,双桥,涪陵,江北,九龙坡,渝中");/*广州    */D[4][0] = new Array("荔湾,越秀,东山,天河,海珠,黄埔,芳村,白云,花都,番禺,东莞,广州经济技术开发区,从化,增城,萝岗,清远,南沙,佛山");/*深圳    */D[4][1] = new Array("福田,罗湖,南山,盐田,宝安,龙岗");/*珠海    */D[4][2] = new Array("斗门,横琴,金湾,香洲,坦洲");/*佛山    */D[4][3] = new Array("南海,顺德,三水,高明,禅城");/*惠州    */D[4][4] = new Array("博罗县,大亚湾区,惠城区,惠东县,惠阳区,龙门县,仲恺区");/*东莞    */D[4][5] = new Array("茶山,长安,常平,大朗,大岭山,道?,东城,东坑,凤岗,高?,莞城,洪梅,厚街,黄江,虎门,寮步,麻涌,南城,企石,桥头,清溪,沙 田,石碣,石龙,石排,松山湖,塘厦,万江,望牛墩,谢岗,樟木头,中堂");/*中山    */D[4][6] = new Array("东区,南区,西区,石岐区,南头镇,古镇镇,东凤镇,小榄镇,黄圃镇,三角镇,民众镇,阜沙镇,火炬区,港口镇,东升镇,横栏镇,沙溪镇,大涌镇,板芙镇,五桂山镇,南朗镇,三乡镇,神湾镇,坦洲镇");/*江门    */D[4][7] = new Array("新会区,蓬江区,江海区,台山市,恩平市,鹤山市,开平市");/*成都    */D[5][0] = new Array("青羊,锦江,金牛,武侯,成华,龙泉驿,青白江,高新区,金堂县,新都区,温江区,郫县,双流县,新津县,大邑县,都江堰市,崇州市,邛崃市,蒲江县,彭州市,高新西区,高新西区");/*杭州    */D[6][0] = new Array("上城,下城,西湖,拱墅,江干,滨江,余杭,萧山,富阳,桐庐,临安,淳安,建德");/*宁波    */D[6][1] = new Array("海曙,江东,江北,鄞州,镇海,北仑,慈溪,余姚,奉化,宁海,象山,高新区,东钱湖旅游度假区");/*嘉兴    */D[6][2] = new Array("嘉善,平湖,海盐,海宁,桐乡,秀洲,南湖,市区,经济开发区");/*绍兴    */D[6][3] = new Array("绍兴县,诸暨市,上虞市,新昌县,越城区,嵊州市");/*贵阳    */D[7][0] = new Array("云岩,南明,金阳新区,小河,花溪,乌当,白云,清镇,开阳,修文,息烽,小河片,金阳");/*沈阳    */D[8][0] = new Array("和平,沈河,皇姑,大东,铁西,苏家屯,东陵,新城子,于洪,新民,辽中,康平,法库,浑南新区,沈北新区");/*大连    */D[8][1] = new Array("西岗,中山,沙河口,甘井子,旅顺口,金州,开发区,高新园区,长兴岛,普兰店,瓦房店,庄河");/*南京    */D[9][0] = new Array("白下,秦淮,玄武,鼓楼,下关,建邺,江宁,六合,浦口,栖霞,雨花,大厂,溧水,高淳");/*苏州    */D[9][1] = new Array("园区,新区,平江,沧浪,金阊,虎丘,吴中,昆山,常熟,太仓,张家港,相城,吴江");/*南通    */D[9][2] = new Array("城东区,城南区,城北区,城中区,狼山区,天生港,唐闸区,观音山区,开发区,海安县,如皋市,如东县,通州,海门,启东市,海门市,港闸,崇川");/*无锡    */D[9][3] = new Array("崇安区,南长区,北塘区,新区,滨湖区,惠山区,马山区,锡山区,江阴市,宜兴市");/*盐城    */D[9][4] = new Array("盐城,东台,大丰,盐都,建湖,响水,阜宁,射阳,滨海");/*徐州    */D[9][5] = new Array("丰县,鼓楼,贾汪,金山桥开发区,沛县,邳州市,泉山,睢宁市,新城区,云龙,铜山区");/*常州    */D[9][6] = new Array("金坛,溧阳,戚区,天宁,武进,新北,钟楼");/*连云港  */D[9][7] = new Array();/*常熟    */D[9][8] = new Array();/*扬州    */D[9][9] = new Array("宝应市,广陵区,高邮市,邗江区,江都市,开发区,维扬区,仪征市");/*镇江    */D[9][10] = new Array("丹阳市,句容市,扬中市,丹徒区,京口区,润州区,镇江新区");/*泰州    */D[9][11] = new Array("城中区,城东区,城西区,城南区,城北区,高港区,泰兴市,姜堰市,兴化市,靖江市");/*昆山    */D[9][12] = new Array("巴城镇,淀山湖镇,花桥镇,锦溪镇,陆家镇,千灯镇,玉山镇,张浦镇,周市镇,周庄镇");/*福州    */D[10][0] = new Array("台江,鼓楼,仓山,晋安,马尾,闽侯县,长乐市");/*厦门    */D[10][1] = new Array("开元,湖里,思明,鼓浪屿,集美,杏林,海沧,同安,翔安,漳州,龙岩,泉州");/*泉州    */D[10][2] = new Array("丰泽区,安溪县,德化县,惠安县,晋江市,鲤城区,洛江区,南安市,泉港区,石狮市,永春县");/*石家庄  */D[11][0] = new Array("桥东,桥西,新华,裕华,长安,开发区,正定,平山,鹿泉市,栾城,藁城");/*唐山    */D[11][1] = new Array("曹妃甸工业区,丰南,丰润,高新区,古冶,海港开发区,汉沽管理区,开平,乐亭县,卢台开发区,路北,路南,滦南县,滦县,南堡开发区,迁安市,迁西县,唐海县,玉田县,遵化市");/*邯郸    */D[11][2] = new Array();/*保定    */D[11][3] = new Array();/*廊坊    */D[11][4] = new Array("安次,广阳,三河,霸州,香河,永清,固安,文安,大城,大厂");/*衡水    */D[11][5] = new Array("桃城区,深州市,冀州市,安平县,故城县,阜城县,景县,枣强县,武强县,饶阳县,开发区,武邑县,郊区");/*秦皇岛  */D[11][6] = new Array("北戴河,昌黎县,抚宁县,海港,卢龙县,青龙县,山海关");/*郑州    */D[12][0] = new Array("金水,中原,管城,二七,邙山,惠济,经济技术开发区,郑东新区");/*洛阳    */D[12][1] = new Array("涧西区,西工区,老城区,?河区,洛龙区,吉利区,偃师市,栾川县,孟津县,咸阳县,伊川县,宜阳县");/*长春    */D[13][0] = new Array("朝阳,宽城,二道,南关,绿园,双阳,其它,吉林地区,高新,经开,净月,汽开");/*吉林    */D[13][1] = new Array("昌邑区,船营区,龙潭区,丰满区,永吉县,舒兰市,磐石市,蛟河市,桦甸市,经开区,高新区");/*哈尔滨  */D[14][0] = new Array("道里,道外,南岗,动力,平房,香坊,太平,开发区,阿城,呼兰,松北");/*济南    */D[15][0] = new Array("市中,天桥,历下,槐荫,历城,长清,高新,济阳,平阴,商河,章丘");/*青岛    */D[15][1] = new Array("市南,市北,四方,李沧,崂山,城阳,黄岛,即墨市,胶州市,胶南市,平度市,莱西市,开发区");/*威海    */D[15][2] = new Array("环翠区,文登市,荣成市,乳山市,高区,经区");/*烟台    */D[15][3] = new Array("芝罘区,福山区,龙口市,莱阳市,莱州市,蓬莱市,招远市,莱山区,开发区,牟平区,栖霞市,海阳市,长岛县");/*潍坊    */D[15][4] = new Array("奎文,潍城,寒亭,坊子,寿光市,高新技术开发区,经济开发区");/*日照    */D[15][5] = new Array("东港");/*临沂    */D[15][6] = new Array("兰山");/*合肥    */D[16][0] = new Array("中市,东市,西市,郊区,庐阳区,包河区,瑶海区,蜀山区,高新区,新站区,经开区,政务区,滨湖新区");/*南宁    */D[17][0] = new Array("兴宁,青秀,西乡塘,江南,良庆,邕宁,桂林市,北海市,钦州市");/*桂林    */D[17][1] = new Array("秀峰区,叠彩区,象山区,七星区,雁山区,西城区,八里街区");/*北海    */D[17][2] = new Array("海城,银海,铁山港,合浦");/*海南    */D[18][0] = new Array("海口市,三亚市,文昌市,琼海市,万宁市,儋州市,东方市,五指山市,保亭县,洋浦经济开发区,其他,定安县,澄迈县");/*呼和浩特*/D[19][0] = new Array("回民,玉泉,新城,金川开发区,金桥开发区,金山开发区,如意开发区,赛罕,郊区,托克托,清水河,武川,和林格尔,土默特左旗");/*太原    */D[20][0] = new Array("杏花岭,小店,迎泽,尖草坪,万柏林,晋源,榆次");/*银川    */D[21][0] = new Array("城区,新城,兴庆区,金凤区,西夏区,永定县,贺兰县,灵武市");/*兰州    */D[22][0] = new Array("城关,七里河,西固,安宁,红古,永登,榆中,皋兰");/*西安    */D[23][0] = new Array("城北,城南,城东,城内,城西,高新,长安,临潼,蓝田,阎良,灞桥,咸阳");/*西宁    */D[24][0] = new Array("城中,城东,城西,城北,湟源,湟中,大通回族土族自治县");/*武汉    */D[25][0] = new Array("江汉,江岸,?口,汉阳,武昌,洪山,青山,东西湖,黄陂,江夏,阳逻,新洲,蔡甸,汉南,沌口");/*宜昌    */D[25][1] = new Array("夷陵区,西陵区,伍家岗区,点军区,?亭区,宜都市,当阳市,枝江市,东山开发区,远安县,兴山县,秭归县,长阳土家族自治县,五峰土家族自治县");/*长沙    */D[26][0] = new Array("岳麓,天心,雨花,开福,芙蓉,星沙,长沙经济开发区");/*南昌    */D[27][0] = new Array("东湖,西湖,青云谱,湾里,昌北,高新开发区,红谷滩,南昌县,青山湖,新建县,郊区,进贤,安义");/*昆明    */D[28][0] = new Array("盘龙区,五华区,官渡区,西山区,安宁,呈贡,其他,东川");/*乌鲁木齐*/D[29][0] = new Array("天山,沙伊巴克,新市,水磨沟,头屯河,南泉,东山");/*香港    */D[30][0] = new Array("北区,大埔去,东区,观塘区,黄大仙区,九龙城区,葵青区,离岛区,南区,沙田区,屯门区,湾仔区,西贡区,油尖旺区,元朗区,中西区,荃湾区");/*台北    */D[31][0] = new Array();///城市与省份的序列对应、每个城市与每个区域数组对应//创建城市对象,返回一个该城市所在省份及所拥有区域的对象function createCity(sCityName){    var oCity = new Object();    oCity.province = "";    oCity.city = sCityName;    oCity.dist = new Array();    oCity.pindex = -1;//所属省份在省份数组中的位置index    oCity.cindex = -1;//城市在所属城市数组中的位置index(二者用来确定区域数组)       var m = -1;var n = -1;    for(var i = 0; i < C.length; i++)    {        for(var j=0; j < C[i].length; j++)        {            if(C[i][j] == sCityName)            {                oCity.province = P[i];                oCity.dist = D[i][j];                oCity.pindex = i;                oCity.cindex = j;                break;            }        }               if(oCity.province != "")        {            break;        }    }       return oCity;}/*三级、省、市、区域*//*面向对象*/function oMenu(selProvince,selCity,selDist){    ///selProvince省份的select控件id    ///selCity城市的select控件id    ///selDist区域的select控件id    this.oProvince = document.getElementById(selProvince);          ///城市变化,初始化区域    function fnInitDist(city)    {        var objCity = createCity(city);        var dist = objCity.dist.toString().split(,);        ClearSelect(selDist,"请选择区域");        InitSelect(selDist,dist,"");    };       ///初始化城市    function fnInitCity(province)    {         for(var i = 0;i < P.length;i++)        {            if(P[i] == province)            {                ClearSelect(selCity,"请选择城市");                InitSelect(selCity,C[i],"");                ClearSelect(selDist,"请先选择城市");                document.getElementById(selCity).onchange = function (){fnInitDist(this.value);};                break;            }        }           };       ///初始化省份    this.fnInitProvince = function(){        InitSelect(selProvince,P,"请选择省份");        ClearSelect(selCity,"请先选择省份");        ClearSelect(selDist,"请先选择城市");               this.oProvince.onchange = function (){fnInitCity(this.value);};    };             ///初始化select控件    function InitSelect(obj,aInitValue,sMenu)    {        ///obj:要初始化的select控件对象的id        ///aInitValue:要初始化的数组值        ///sMenu:在select控件头部要添加的option,value为空;如果该参数为空,则只初始化aInitValue而不加头部        if(sMenu != "")        {            document.getElementById(obj).options.add(new Option(sMenu,""));        }               for(var i = 0; i < aInitValue.length; i++)        {            document.getElementById(obj).options.add(new Option(aInitValue[i],aInitValue[i]));        }           }       function ClearSelect(obj,sMenu)    {               document.getElementById(obj).options.length = 0;        document.getElementById(obj).options.add(new Option(sMenu,""));           }   }    var oMenu = new oMenu("selProvince","selCity","selDist");//select ID    oMenu.fnInitProvince();  </script></body></html>

 

JS 省市区三级联动