JavaScript实现省市区的三级联动
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>
调试
备注
- .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实现省市区的三级联动的更多相关文章
- 省市区(县)三级联动代码(js 数据源)
ylbtech-JavaScript-Utility:省市区(县)三级联动代码(js 数据源) 省市区(县)三级联动代码(js 数据源) 1.A,源代码(Source Code)返回顶部 1.A.1, ...
- JQuery实现省市区的三级联动
JQuery实现省市区的三级联动 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "h ...
- js之省市区(县)三级联动效果
省市区(县)三级联动效果,是我们软件开发比较常用的,特别是对一些crm,erp之类,当然也包括其他的后台管理系统,基本都涉及到,今天贴出这个常用的,方便个人复用和大家使用 <!DOCTYPE h ...
- 中国省市区地址三级联动jQuery插件 案例下载
中国省市区地址三级联动jQuery插件 案例下载 distpicker 是一款可以实现中国省市区地址三级联动jQuery插件.它使用简单,简单设置即可完成中国省市区地址联动效果. 安装 可以通过npm ...
- 中国省市区地址三级联动插件---jQuery Distpicker
插件描述:distpicker是一款可以实现中国省市区地址三级联动jQuery插件.它使用简单,简单设置即可完成中国省市区地址联动效果. [官网]https://fengyuanchen.github ...
- 省市区js三级联动(原创)
看了一些网上的js三级联动,但感觉不是缺这,就是少那,决定亲自操刀写了一个,现记录如下,以备后用! <!DOCTYPE html> <html> <head> &l ...
- 转: javascript实现全国城市三级联动菜单代码
<html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...
- 原生JavaScript的省市县三级联动
三级联动是我们写表单时必不可少的,比如在写收货地址时,就用到他了,最近在看原生JavaScript,从基础写起,待完善,以后再写个jquery版的. <!DOCTYPE html> < ...
- 用php和ajax写一个省市区的三级联动,实现地区的下拉选择
要实现这个页面的三级联动,我们需要建立三个php文件,第一个php文件我们导入jQuery文件,里面嵌入JavaScript:第二个php文件我们做一个php的处理页面,里面引入我们封装好的数据库类文 ...
随机推荐
- 【慕课网实战】Spark Streaming实时流处理项目实战笔记十六之铭文升级版
铭文一级: linux crontab 网站:http://tool.lu/crontab 每一分钟执行一次的crontab表达式: */1 * * * * crontab -e */1 * * * ...
- Redis Sentinel 模拟故障迁移
什么是redis sentinel 参考文档:https://redis.io/topics/sentinel 简单的来说,就是Redis Sentinel 为redis 提供高可用性,主要体现在下面 ...
- 消息中间件——RabbitMQ
RabbitMQ介绍 RabbitMQ是实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面表现不俗.RabbitM ...
- ASP.NET MVC下使用AngularJs语言(二):ng-click事件
程序用户交互,用户使用mouse点击,这是一个普通的功能. 在angularjs的铵钮点击命令是ng-click. 创建Angularjs的app使用前一篇<ASP.NET MVC下使用Angu ...
- 笔记:BroadcastReceiver的运行过程
广播概述 广播用来在组件之间传递消息,可以是同进程或跨进程. 广播机制是基于发布订阅的事件驱动模型,使用上比Binder通信(跨进程接口回调)更低耦合.简单. ActivityManagerServi ...
- jzoj5929. 【NOIP2018模拟10.26】情书
动态规划: #include<bits/stdc++.h> using namespace std; int n,iv[30]; #define mo 998244353 typedef ...
- Android 框架式编程 —— 起篇
一般的,在开发的时候,写过的代码在需求变更后,发现需要改动非常多的地方,那么说明之前的代码的架构肯定是存在问题的. 下面我们结合面向对象的六大基本原则谈Android 框架式编程.首先先介绍一下面向对 ...
- 12:集合map、工具类
一.map集合 Map:一次添加一对元素.Collection 一次添加一个元素. Map也称为双列集合,Collection集合称为单列集合. 其实map集合中存储的就是键值对(结婚证书), map ...
- Java 实现删除文件工具类
工具代码 package com.wangbo; import java.io.File; /** * 删除目录或文件工具类 * @author wangbo * @date 2017-04-11 1 ...
- python中的基本数值计算
最近用到了python的数字信号处理,发现很多以前学的都忘掉了,这里做个笔记 # -*- coding: utf-8 -*- #计算乘方 print pow(3,4) #计算平方 import num ...