JavaScript 三级联动
附件连接下载地址:http://files.cnblogs.com/files/CaktyRiven/js.zip
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>三级联动</title>
</head>
<body>
<select name="" id="province">
<option value="">请选择省</option>
</select>
<select name="" id="city">
<option value="">请选择市</option>
</select>
<select name="" id="county">
<option value="">请选择区/县</option>
</select>
<script type="text/javascript" src="china.js"></script>
<script type="text/javascript">
//获取省、市、县/区、节点
var body = document.body;
var province =document.getElementById('province');
var city = document.getElementById('city');
var county = document.getElementById("county");
//将chain.js里面的字符串通过JSON转换成对象
var chinaArea = JSON.parse(chinaArea);
//通过点访问法访问对象,将结果赋给定义好的省列表
var provinceList =chinaArea.china.province;
//for循环遍历省份列表长度
for(var i = 0; i < provinceList.length; i++) {
//新建option节点
var option = document.createElement("option");
//将通过中括号访问法访问对象属性["-name"]中的省份名赋给option。
option.innerHTML = provinceList[i]["-name"];
//将option添加到province 的select下拉列表里
province.appendChild(option); }
//定义城市列表为空
var cityList=null;
//利用onchang方法获取下拉列表中的对象
province.onchange=function(){
//清空城市/区县列表
city.innerHTML ="<option>请选择市</option>";
county.innerHTML="<option>请选择区/县</option>";
//通过this.selectedIndex获取select列表的下标
if(this.selectedIndex >0){
//同理,通过点访问法和中括号访问法访问对象,将获取的城市赋给cityList
cityList = chinaArea.china.province[this.selectedIndex -1].city;
//同理、遍历城市列表的长度、新建option、赋值、并添加
for(var i=0; i<cityList.length; i++){
var option = document.createElement("option");
option.innerHTML = cityList[i]["-name"];
city.appendChild(option); }
}
} //县区的的做法同城市的原理一致,都是通过访问获得县区长度及name,再遍历县区长度,相应赋值 city.onchange = function(){
county.innerHTML="<option>请选择区/县</option>";
if(this.selectedIndex >0){
for(var i=0;i<cityList[this.selectedIndex -1].county.length;i++){
var option = document.createElement("option");
option.innerHTML =cityList[this.selectedIndex -1].county[i]["-name"];
county.appendChild(option);
}
}
} </script>
</body>
</html
2017.05.02 -- 新增 ,js+jquery,省市区三级联动,封装函数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>三级联动</title>
</head>
<body>
<select name="" id="province">
<option value="">请选择</option>
</select>
<select name="" id="city">
<option value="">请选择</option>
</select>
<select name="" id="county">
<option value="">请选择</option>
</select>
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/china.js"></script>
<script type="text/javascript">
//将chain.js里面的字符串通过JSON转换成对象
var chinaArea = JSON.parse(chinaArea);
console.log(chinaArea);
//通过点访问法访问对象,将结果赋给定义好的省列表
var provinceList =chinaArea.china.province; function address(piv,cit,coy){
//获取省、市、县/区、节点
var province =$(piv);
var city = $(cit);
var county = $(coy);
//for循环遍历省份列表长度
for(var i = 0; i < provinceList.length; i++) {
//新建option节点
var option = document.createElement("option");
//将通过中括号访问法访问对象属性["-name"]中的省份名赋给option。
option.innerHTML = provinceList[i]["-name"];
//将option添加到province 的select下拉列表里
// province.appendTo(option);
province.append(option); }
//定义城市列表为空
var cityList =null;
//利用onchang方法获取下拉列表中的对象
province.change(function(){
//清空城市/区县列表
city.html ("<option>请选择市</option>");
county.html("<option>请选择区/县</option>");
//通过this.selectedIndex获取select列表的下标
if(this.selectedIndex >0){
//同理,通过点访问法和中括号访问法访问对象,将获取的城市赋给cityList
cityList = chinaArea.china.province[this.selectedIndex -1].city;
//同理、遍历城市列表的长度、新建option、赋值、并添加
for(var i=0; i<cityList.length; i++){
var option = document.createElement("option");
option.innerHTML = cityList[i]["-name"];
city.append(option);
}
}
})
//县区的的做法同城市的原理一致,都是通过访问获得县区长度及name,再遍历县区长度,相应赋值
city.change(function(){
county.innerHTML="<option>请选择区/县</option>";
if(this.selectedIndex >0){
for(var i=0;i<cityList[this.selectedIndex -1].county.length;i++){
var option = document.createElement("option");
option.innerHTML =cityList[this.selectedIndex -1].county[i]["-name"];
county.append(option);
}
}
})
}
address(province,city,county);
</script>
</body>
</html>
JavaScript 三级联动的更多相关文章
- 转: javascript实现全国城市三级联动菜单代码
<html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...
- 原生JavaScript的省市县三级联动
三级联动是我们写表单时必不可少的,比如在写收货地址时,就用到他了,最近在看原生JavaScript,从基础写起,待完善,以后再写个jquery版的. <!DOCTYPE html> < ...
- JavaScript实现省市区的三级联动
JavaScript实现省市区的三级联动 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &qu ...
- 时间操作(JavaScript版)—年月日三级联动(默认显示系统时间)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/wangshuxuncom/article/details/35263317 这个功能 ...
- 【JavaScript&jQuery】省市区三级联动
HTML: <%@page import="com.mysql.jdbc.Connection"%> <%@ page language="java&q ...
- javascript 省、市、地县三级联动
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD&g ...
- 原生javascript制作省市区三级联动详细教程
多级联动下拉菜单是前端常见的效果,省市区三级联动又属于其中最典型的案例.多级联动一般都是与数据相关联的,根据数据来生成和修改联动的下拉菜单.完成一个多级联动效果,有助于增强对数据处理的能力. 本实例以 ...
- 原生javascript实现省市区三级联动
腾讯IP分享计划(http://ip.qq.com/)有个现成的三级联动功能,查看源码后发现可以直接使用其单独的JS文件(http://ip.qq.com/js/geo.js). 分析后发现自己需要写 ...
- 二级联动,三级联动,初学者,纯javascript,不含jQuery
二级联动: html代码: <body> <select id="province" onchange="getCity(this.options.se ...
随机推荐
- 数据结构快速回顾——平衡二叉树 AVL (转)
平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树.1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵 ...
- GCC 编译优化指南(转)
GCC 编译优化指南(转) http://www.jinbuguo.com/linux/optimize_guide.html 作者:金步国 版权声明 本文作者是一位开源理念的坚定支持者,所以本文虽然 ...
- php时区问题
今天遇到一个很诡异的问题: 数据库中存的日期信息为时间戳,用php取出数据库中的日期信息,并用date()函数转化为“Y-m-d”后,发现和mysql格式化函数Date_Format()处理后的结果不 ...
- [教程] 【玩转终端1:apt-get】
进来工作比较清闲,所以写点东西,给喜欢折腾的朋友.本文及后面将要介绍的一些终端命令,其实对于玩过linux的人来说,是很基础的东西,我可能是班门弄斧了(拍砖的请轻点,有愿意补充/纠正的,本人求知不得) ...
- 多个SVG图形集成到一个SVG图形上
SVG:使用XML格式定义图像的可缩放矢量图形(Scalable Vector Graphics). 优点就不多说了,下面看看怎么将多个svg图形集成到一个svg图形上. 如果使用bootstrap框 ...
- sql server 日期
在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...
- PHP基础之POST与GET
post 与 get区别 *.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示.*.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1 ...
- _stdcall,_cdecl区别
(1) _stdcall调用 _stdcall是Pascal程序的缺省调用方式,参数采用从右到左的压栈方式,被调函数自身在返回前清空堆栈. WIN32 Api都采用_stdcall调用方式,这样的宏定 ...
- execl表格VLOOKUP函数的使用
使用场景:最近在处理一个表格数据的时候出现了一点麻烦.想把另外表2里面对应的的数据放到表1里面,本来表2的ID是乱序的(这里为好看,就顺序排了.),一个个查找复制粘贴比较麻烦,后经大师指点VLOOKU ...
- UnrealEd3视图导航
本博客使用的版本:2010-08 [更多其他的UE3版本] [最新的UE3版本 -- 2015-02] [unreal engine wiki] 注:dx11被加入2011-03月版 ...