简单实用jquery版三级联动select示例


Posted in Javascript onJuly 04, 2013

html和js部分

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=gbk /> 
<title>selectList</title> 
<style type="text/css"> 
*{margin:0;padding:0;} 
.selectList{width:200px;margin:50px auto;} 
</style> 
<script type="text/javascript" src="jquery1.7.1.js"></script> 
</head> 
<body> 
<div class="selectList"> 
<select class="province"> 
<option>请选择</option> 
</select> 
<select class="city"> 
<option>请选择</option> 
</select> 
<select class="district"> 
<option>请选择</option> 
</select> 
</div> 
<div class="selectList"> 
<select class="province"> 
<option>请选择</option> 
</select> 
<select class="city"> 
<option>请选择</option> 
</select> 
<select class="district"> 
<option>请选择</option> 
</select> 
</div> 
<script type="text/javascript"> 
$(function(){ 
$(".selectList").each(function(){ 
var url = "area.json"; 
var areaJson; 
var temp_html; 
var oProvince = $(this).find(".province"); 
var oCity = $(this).find(".city"); 
var oDistrict = $(this).find(".district"); 
//初始化省 
var province = function(){ 
$.each(areaJson,function(i,province){ 
temp_html+="<option value='"+province.p+"'>"+province.p+"</option>"; 
}); 
oProvince.html(temp_html); 
city(); 
}; 
//赋值市 
var city = function(){ 
temp_html = ""; 
var n = oProvince.get(0).selectedIndex; 
$.each(areaJson[n].c,function(i,city){ 
temp_html+="<option value='"+city.ct+"'>"+city.ct+"</option>"; 
}); 
oCity.html(temp_html); 
district(); 
}; 
//赋值县 
var district = function(){ 
temp_html = ""; 
var m = oProvince.get(0).selectedIndex; 
var n = oCity.get(0).selectedIndex; 
if(typeof(areaJson[m].c[n].d) == "undefined"){ 
oDistrict.css("display","none"); 
}else{ 
oDistrict.css("display","inline"); 
$.each(areaJson[m].c[n].d,function(i,district){ 
temp_html+="<option value='"+district.dt+"'>"+district.dt+"</option>"; 
}); 
oDistrict.html(temp_html); 
}; 
}; 
//选择省改变市 
oProvince.change(function(){ 
city(); 
}); 
//选择市改变县 
oCity.change(function(){ 
district(); 
}); 
//获取json数据 
$.getJSON(url,function(data){ 
areaJson = data; 
province(); 
}); 
}); 
}); 
</script> 
</body> 
</html>

json文件(area.json),这里只是事例,根据情况添加或编写
[ 
{"p":"江西省", 
"c":[ 
{"ct":"南昌市", 
"d":[ 
{"dt":"西湖区"}, 
{"dt":"东湖区"}, 
{"dt":"高新区"} 
]}, 
{"ct":"赣州市", 
"d":[ 
{"dt":"瑞金县"}, 
{"dt":"南丰县"}, 
{"dt":"全南县"} 
]} 
]}, 
{"p":"北京", 
"c":[ 
{"ct":"东城区"}, 
{"ct":"西城区"} 
]}, 
{"p":"河北省", 
"c":[ 
{"ct":"石家庄", 
"d":[ 
{"dt":"长安区"}, 
{"dt":"桥东区"}, 
{"dt":"桥西区"} 
]}, 
{"ct":"唐山市", 
"d":[ 
{"dt":"滦南县"}, 
{"dt":"乐亭县"}, 
{"dt":"迁西县"} 
]} 
]} 
]

各位最好自己封装成插件,方便调用
Javascript 相关文章推荐
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
JavaScript调用后台的三种方法实例
Oct 17 Javascript
为jquery的ajaxfileupload增加附加参数的方法
Mar 04 Javascript
包含中国城市的javascript对象实例
Aug 03 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
Dec 20 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
Jun 06 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
Apr 13 Javascript
Vue响应式原理详解
Apr 18 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
Jul 13 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
Dec 15 Javascript
Bootstrap Table实现定时刷新数据的方法
Aug 13 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 jQuery
原生javascript和jquery判断浏览器版本等信息
Jul 04 #Javascript
js将控件隐藏的方法及display属性介绍
Jul 04 #Javascript
Jquery多选框互相内容交换的实例代码
Jul 04 #Javascript
js局部刷新页面时间具体实现
Jul 04 #Javascript
Jquery倒数计时按钮setTimeout的实例代码
Jul 04 #Javascript
javascript闭包的高级使用方法实例
Jul 04 #Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
Jul 04 #Javascript
You might like
用PHP生成自己的LOG文件
2006/10/09 PHP
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php 文件夹删除、php清除缓存程序
2009/08/25 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
Firefox outerHTML实现代码
2009/06/04 Javascript
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
利用nvm管理多个版本的node.js与npm详解
2017/11/02 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
Node.js中的child_process模块详解
2018/06/08 Javascript
Vue动态加载异步组件的方法
2018/11/21 Javascript
[49:31]TFT vs Mski Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
Python cookbook(数据结构与算法)让字典保持有序的方法
2018/02/18 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
Python查找文件中包含中文的行方法
2018/12/19 Python
pytorch加载自定义网络权重的实现
2020/01/07 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
pytorch实现保证每次运行使用的随机数都相同
2020/02/20 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
2020/06/18 Python
耐克美国官网:Nike.com
2016/08/01 全球购物
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
拉斯维加斯酒店、演出、旅游、俱乐部及更多:Vegas.com
2019/02/28 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
企业员工培训感言
2014/02/26 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
创先争优活动个人总结
2015/03/04 职场文书
python内置进制转换函数的操作
2021/06/02 Python