首页 > 代码库 > JS设计省、市、县的联动
JS设计省、市、县的联动
最近用js写了一段省市县的联动设置,先传上来,后期会不断优化
效果图如下:
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 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>DOM作业</title> 6 </head> 7 <!--用来演示省市县的联动--> 8 <body> 9 <select name="" id="pro"></select>10 <select name="" id="city"></select>11 <select name="" id="county"></select>12 <script type="text/javascript">13 (function(win){14 win.onload=function(){15 16 var hgCity={name:"黄冈市",children:["蕲春区","武穴区","溪水区"]};17 var whCity={name:"武汉市",children:["汉口区","武昌区","汉阳区"]};18 var hbArray=[];19 hbArray.push(whCity,hgCity);20 var hbPro={name:"湖北省",children:hbArray};21 22 var szCity={name:"深圳市",children:["南山区","罗湖区","盐田区"]};23 var dgCity={name:"东莞市",children:["凤岗县","莞城县","常平县"]};24 var gdArray=[];25 gdArray.push(szCity,dgCity);26 var gdPro={name:"广东省",children:gdArray};27 28 var zjCity={name:"镇江市",children:["京口区","丹徒区","新城区"]};29 var njCity={name:"南京市",children:["栖霞区","江宁区","城北区"]};30 var jsArray=[];31 jsArray.push(zjCity,njCity);32 var jsPro={name:"江苏省",children:jsArray};33 34 //定义省市县数组35 var chinaArray=[];36 chinaArray.push(hbPro,gdPro,jsPro);37 38 //获取省市县各级dom对象39 var proDom = document.getElementById("pro");40 var cityDom =document.getElementById("city");41 var countyDom=document.getElementById("county");42 43 //初始化省44 addDddress(chinaArray,proDom);45 //初始化市46 pro();47 //初始化县/区48 cit(); 49 proDom.onchange=pro;50 //省51 function pro(){52 //先清空city选项53 cityDom.innerHTML="";54 //当身份选项被改变时,获取省份对应的value值55 var num = proDom.value;56 //被选择的省份对应的市57 var cityArray= chinaArray[num].children;58 addDddress(cityArray,cityDom);59 //联动县60 cit();61 };62 //根据市选项的触发事件,自动填充县/区63 cityDom.onchange=cit;64 //市65 function cit(){66 //每次改变时先清空上一次的值67 countyDom.innerHTML="";68 //当市被改变时,自动获取对应的省,市的value69 var num1 = proDom.value;70 var num2 = cityDom.value;71 //被选择的市对应的县,区72 var countyArray = chinaArray[num1].children[num2].children;73 addDddress(countyArray,countyDom);74 };75 };76 //县77 function addDddress(adrArray,dom){78 for(var i=0,len=adrArray.length;i<len;i++){79 var opt=document.createElement("option");80 if(adrArray[i].name){81 opt.innerHTML=adrArray[i].name;82 }else{83 opt.innerHTML=adrArray[i];84 }85 opt.value=http://www.mamicode.com/i;86 dom.appendChild(opt);87 }88 }89 })(window)90 91 </script> 92 </body>93 </html>
JS设计省、市、县的联动
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。