简单实用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 相关文章推荐
JQuery中的$.getJSON 使用说明
Mar 10 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
Oct 11 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 Javascript
七个很有意思的PHP函数
May 12 Javascript
JS函数重载的解决方案
May 13 Javascript
使用jquery动态加载Js文件和Css文件
Oct 24 Javascript
js removeChild 方法深入理解
Aug 16 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 Javascript
JavaScript设计模式之构造函数模式实例教程
Jul 02 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
Vue中正确使用Element-UI组件的方法实例
Oct 13 Javascript
原生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初学者头疼问题总结
2006/10/09 PHP
ThinkPHP关联模型操作实例分析
2012/09/23 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
php查找指定目录下指定大小文件的方法
2014/11/28 PHP
php实现搜索类封装示例
2016/03/31 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
js 验证密码强弱的小例子
2013/03/21 Javascript
javascript数字时钟示例分享
2014/04/23 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jQuery实现的仿百度分页足迹效果代码
2015/10/30 Javascript
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
JavaScript函数式编程(Functional Programming)箭头函数(Arrow functions)用法分析
2019/05/22 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
python 切片和range()用法说明
2013/03/24 Python
python编写暴力破解FTP密码小工具
2014/11/19 Python
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
Python实现的矩阵类实例
2017/08/22 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
python同步windows和linux文件
2019/08/29 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
Python wordcloud库安装方法总结
2020/12/31 Python
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
NFL加拿大官方网上商店:NHLShop.ca
2019/03/12 全球购物
super关键字的用法
2012/04/10 面试题
Java中各种基本数据类型的默认值都是什么
2016/12/22 面试题
酒店管理专业毕业生推荐信
2013/11/10 职场文书
安全资料员岗位职责范本
2014/06/28 职场文书
班主任高考寄语
2015/02/26 职场文书
管辖权异议上诉状
2015/05/23 职场文书