简单实用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 easyui的tabs使用时的问题
Mar 23 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
Oct 20 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
Sep 29 Javascript
js+html5实现canvas绘制镂空字体文本的方法
Jun 05 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
Oct 15 Javascript
理解javascript中的严格模式
Feb 01 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
Sep 15 Javascript
JavaScript中重名的函数与对象示例详析
Sep 28 Javascript
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
利用SpringMVC过滤器解决vue跨域请求的问题
Feb 10 Javascript
详解webpack4之splitchunksPlugin代码包分拆
Dec 04 Javascript
解决layui 三级联动下拉框更新时回显的问题
Sep 03 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 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
浅析Mysql 数据回滚错误的解决方法
2013/08/05 PHP
基于PHP实现等比压缩图片大小
2016/03/04 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
删除重复数据的算法
2006/11/23 Javascript
[原创]用javascript实现检测指定目录是否存在的方法
2008/01/12 Javascript
初窥JQuery(二)事件机制(2)
2010/12/06 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
2013/05/08 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
javascript数组去重方法总结(推荐)
2019/03/20 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
element ui分页多选,翻页记忆的实例
2019/09/03 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
Python写的英文字符大小写转换代码示例
2015/03/06 Python
python通过urllib2获取带有中文参数url内容的方法
2015/03/13 Python
Python requests库用法实例详解
2018/08/14 Python
Scrapy-Redis结合POST请求获取数据的方法示例
2019/05/07 Python
Django中Middleware中的函数详解
2019/07/18 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
详解Django3中直接添加Websockets方式
2020/02/12 Python
python 瀑布线指标编写实例
2020/06/03 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
英国领先的狗和宠物美容专家:Christies Direct
2017/04/03 全球购物
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
《学棋》教后反思
2014/04/14 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS