JavaScript实现省市区的三级联动

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Insert title here</title>
 </head>
 <body>
 <div id="div1">
 </div>
 <script type="text/javascript">
     /* 创建省 */
     var provinceAr = ["湖北省","吉林省","湖南省"];
     var province = document.createElement("select");
     var province_one = document.createElement("option");
     var province_one_value = document.createTextNode("请选择省");
     province_one.appendChild(province_one_value);
     province.appendChild(province_one);
     document.getElementById("div1").appendChild(province);
     for(var i = 0; i < provinceAr.length; i++){
         province_one = document.createElement("option");
         province_one_value = document.createTextNode(provinceAr[i]);
         province_one.appendChild(province_one_value);
         province.appendChild(province_one);
     }
     /* 创建市 */
     var cityAr = [
                   ["襄阳市","武汉市","荆门市","恩施市"],
                   ["长春市","四平市","松原市"],
                   ["长沙市","岳阳市","益阳市"],
                   ];
     province.id = "proi";//给省添加id
     var city = document.createElement("select");
     document.getElementById("div1").appendChild(city);
     var city_one = document.createElement("option");
     var city_one_value = document.createTextNode("请选择市");
     city_one.appendChild(city_one_value);
     city.appendChild(city_one);
     city.id="cityI";//给市添加id
     /* 创建县 */
     var townAr = [
                 [
                      ["樊城区","襄州区","襄城区"],
                      ["江汉区","汉阳区","武昌区"],
                      ["京沙县","沙洋县","东宝区"],
                      ["舞阳坝街道","小渡船街道","六角亭街道"]
                  ],
                 [
                      ["南关区 ","朝阳区","宽城区"],
                      ["铁东区","铁西区","梨树县"],
                      ["宁江区","乾安县","长岭县"]
                  ],
                 [
                      ["长沙县 ","宁乡县","浏阳市"],
                      ["湘阴县","岳阳县","华容县"],
                      ["安化","桃江","南县"]
                  ]
                 ];
     var town = document.createElement("select");
     var town_one = document.createElement("option");
     var town_one_value = document.createTextNode("请选择县");
     town_one.appendChild(town_one_value);
     town.appendChild(town_one);
     document.getElementById("div1").appendChild(town);
     /* onchange拼写出错可能导致进程终止*/
     province.onchange = function(){
         var index = document.getElementById("proi").selectedIndex;//给select一个索引值
         city.innerHTML="";
         if(index==0){
             var city_one = document.createElement("option");
             var city_one_value = document.createTextNode("请选择市");
             city_one.appendChild(city_one_value);
             city.appendChild(city_one);
             town.innerHTML="";
             var town_one = document.createElement("option");
             var town_one_value = document.createTextNode("请选择县");
             town_one.appendChild(town_one_value);
             town.appendChild(town_one);
         }
         else
         {
             var cityValues = cityAr[index-1];
             var townValu = townAr[index-1];//townValu为一个二维数组
             console.log(cityValues);
             console.log(townValu);
             for(var i = 0; i < cityValues.length; i++){
                 var city_one = document.createElement("option");
                 var city_one_value = document.createTextNode(cityValues[i]);
                 city_one.appendChild(city_one_value);
                 city.appendChild(city_one);
             }
             var tor = townValu[0];
             console.log(tor);
             town.innerHTML="";
             for(var i = 0; i < tor.length; i++)
             {
             var town_one = document.createElement("option");
             var town_one_value = document.createTextNode(tor[i]);
             town_one.appendChild(town_one_value);
             town.appendChild(town_one);
             }
             city.onchange=function(){
                 var indexc = document.getElementById("cityI").selectedIndex;
                 var townVa = townValu[indexc];
                 town.innerHTML="";
                 console.log(townVa);
                 for(var i = 0; i < townVa.length; i++)
                 {
                 var town_one = document.createElement("option");
                 var town_one_value = document.createTextNode(townVa[i]);
                 town_one.appendChild(town_one_value);
                 town.appendChild(town_one);
                 }
             }
         }
     }
 </script>
 </body>
 </html>

调试

备注

  1. .innerHTML=" "的作用是为了清空select下的option样式,若不清空可能会导致select索引值发生改变

参考链接

http://www.w3school.com.cn/xmldom/met_document_createelement.asp(createElement() 方法)

http://www.w3school.com.cn/jsref/prop_option_index.asp(HTML DOM index属性)

JavaScript实现省市区的三级联动的更多相关文章

  1. 省市区(县)三级联动代码(js 数据源)

    ylbtech-JavaScript-Utility:省市区(县)三级联动代码(js 数据源) 省市区(县)三级联动代码(js 数据源) 1.A,源代码(Source Code)返回顶部 1.A.1, ...

  2. JQuery实现省市区的三级联动

    JQuery实现省市区的三级联动 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h ...

  3. js之省市区(县)三级联动效果

    省市区(县)三级联动效果,是我们软件开发比较常用的,特别是对一些crm,erp之类,当然也包括其他的后台管理系统,基本都涉及到,今天贴出这个常用的,方便个人复用和大家使用 <!DOCTYPE h ...

  4. 中国省市区地址三级联动jQuery插件 案例下载

    中国省市区地址三级联动jQuery插件 案例下载 distpicker 是一款可以实现中国省市区地址三级联动jQuery插件.它使用简单,简单设置即可完成中国省市区地址联动效果. 安装 可以通过npm ...

  5. 中国省市区地址三级联动插件---jQuery Distpicker

    插件描述:distpicker是一款可以实现中国省市区地址三级联动jQuery插件.它使用简单,简单设置即可完成中国省市区地址联动效果. [官网]https://fengyuanchen.github ...

  6. 省市区js三级联动(原创)

    看了一些网上的js三级联动,但感觉不是缺这,就是少那,决定亲自操刀写了一个,现记录如下,以备后用! <!DOCTYPE html> <html> <head> &l ...

  7. 转: javascript实现全国城市三级联动菜单代码

    <html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...

  8. 原生JavaScript的省市县三级联动

    三级联动是我们写表单时必不可少的,比如在写收货地址时,就用到他了,最近在看原生JavaScript,从基础写起,待完善,以后再写个jquery版的. <!DOCTYPE html> < ...

  9. 用php和ajax写一个省市区的三级联动,实现地区的下拉选择

    要实现这个页面的三级联动,我们需要建立三个php文件,第一个php文件我们导入jQuery文件,里面嵌入JavaScript:第二个php文件我们做一个php的处理页面,里面引入我们封装好的数据库类文 ...

随机推荐

  1. tomcat的调优管理

    1 记性调整存设定. A: 方法如下: 1. linux 下编辑tomcat安装目录下的bin目录下的catalina.sh文件,windows下为catalina.bat vi  catalina. ...

  2. 用scp这个命令来通过ssh传输文件

    小结: 1. upload files 到 ssh 服务器 localhost $ scp localfile root@172.20.34.**:~/remotepath 2. 从 ssh 服务器d ...

  3. Alpha冲刺(5/10)——2019.4.28

    所属课程 软件工程1916|W(福州大学) 作业要求 Alpha冲刺(5/10)--2019.4.28 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪 ...

  4. electron 使用 node-ffi 调用 C++ 动态链接库(DLL)

    一.为什么需要使用DLL 需要使用系统 API 操作或扩展应用程序: 需要调用第三方的接口API,特别是与硬件设备进行通信,而这些接口 API 基本上都是通过 C++ 动态链接库(DLL)实现的: 需 ...

  5. Windows 系统里面的 hosts 文件

    一.什么是hosts文件? hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的 ...

  6. Android 开发工具推荐

    简评: 自己过去在 Android 开发中发现的好工具,在这里分享给大家.: ) Library methods count 每一个 Android App 的开发中都会用到很多的库,这个工具能够让你 ...

  7. MyBatis核心接口和类

    SqlSessionFactoryBuilder: SqlSessionFactoryBuilder负责构建SqlSessionFactory.它的最大特点是:用过即丢.一旦创建了SqlSession ...

  8. U-boot中SPL功能和源码流程分析

    在U-boot目录下,有个比较重要的目录就是SPL的,SPL到底是什么呢?为什么要用它呢? SPL(Secondary programloader)是uboot第一阶段执行的代码.主要负责搬移uboo ...

  9. Linux - 多窗口管理器Screen程序

    GNU's Screen homepage Screen是由GNU计划开发的用于命令行终端切换的自由软件,可以看作是窗口管理器的命令行界面版本. 可以通过该软件同时连接多个本地或远程的命令行会话,并在 ...

  10. [视频]K8飞刀 一键免杀 IE神洞网马教程

    [视频]K8飞刀 一键免杀 IE神洞网马教程 https://pan.baidu.com/s/16ZrTs