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 ...
随机推荐
- [Git] Git基础
远程仓库 查看远程仓库: git remote -v 添加远程仓库: git remote add <repoName> <url> 拉取远程仓库数据: git fetch & ...
- Test Regular Expressions Online with RegExr免费的正则表达式检验网站
免费的正则表达式检验网站: http://www.regexr.com
- 核心动画 - CAKeyframeAnimation 简单应用
核心动画: 登录按钮的抖动效果: CAKeyframeAnimation * kfAnimation = [CAKeyframeAnimation animationWithKeyPath:@&quo ...
- ios推送-B/S架构-socket
B/S架构项目,某一用户登录后执行了某些动作需要向在手机登录的对应的用户推送消息 通过socket实现 1.socket服务器:使用C#的window服务(该服务监听两个端口:比如平台8889,手机8 ...
- HTTP状态码(2xx,3xx,4xx,5xx)
HTTP状态码负责表示客户端请求的返回结果,标记服务器的处理结果. HTTP常用状态码分为5种: 类别 原因短语 1xx Informational(信息状态码) 接受请求正在处理 2xx Suc ...
- 使用emIDE创建STM32项目
emIDE是一个开源的嵌入式集成开发环境,基于Code::Blocks开发,能够支持多个平台和多个厂家的嵌入式硬件,继承了Code::Blocks的有点. 下载emIDE并安装,也可选择绿色版.若需要 ...
- 关于搭建webservice以及无法通过URL访问的简易解决办法
之前工作天天在用webservice,但是从没有自己独立的搭建一个全新的项目,今天好不容易自己搭了一个webservice,报错不少,记录下来免得以后又忘了. 一.搭建webservice需要做的几点 ...
- java学习第四天 类和变量
java也属于面向对象的编程 面向对象的三大特征: 封装 继承 多态 类 对象 对象:真实存在的唯一的事物 面向对象编程(oop)思想力图使对计算机语言中的事物的描述和自然界中的事物尽可能保持一致 ...
- Caffe初试(三)使用caffe的cifar10网络模型训练自己的图片数据
由于我涉及一个车牌识别系统的项目,计划使用深度学习库caffe对车牌字符进行识别.刚开始接触caffe,打算先将示例中的每个网络模型都拿出来用用,当然这样暴力的使用是不会有好结果的- -||| ,所以 ...
- button按钮
button按钮只加类名不加type时,点击此按钮页面会刷新