简单实用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 相关文章推荐
javascript在事件监听方面的兼容性小结
Apr 07 Javascript
extJs 下拉框联动实现代码
Apr 09 Javascript
用正则表达式替换图片地址img标签
Nov 22 Javascript
编程语言JavaScript简介
Oct 16 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
Sep 12 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
Feb 15 Javascript
关于Angular2 + node接口调试的解决方案
May 28 Javascript
浅谈ES6 模板字符串的具体使用方法
Nov 07 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
Sep 02 Javascript
layui数据表格跨行自动合并的例子
Sep 02 Javascript
浅谈v-for 和 v-if 并用时筛选条件方法
Nov 07 Javascript
Vue中的nextTick作用和几个简单的使用场景
Jan 25 Vue.js
原生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检索或者复制远程文件的方法
2015/03/13 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
web前端开发也需要日志
2010/12/09 Javascript
js TextArea的选中区域处理
2010/12/28 Javascript
JavaScript去掉数组中的重复元素
2011/01/13 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
node.js操作mysql简单实例
2017/05/25 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
微信小程序 同步请求授权的详解
2017/08/04 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
python基础教程之序列详解
2014/08/29 Python
python下载文件时显示下载进度的方法
2015/04/02 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
Python自动化开发学习之三级菜单制作
2017/07/14 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
VSCode中autopep8无法运行问题解决方案(提示Error: Command failed,usage)
2021/03/02 Python
HTML5的结构和语义(4):语义性的内联元素
2008/10/17 HTML / CSS
交通安全横幅标语
2014/10/07 职场文书
2014会计年终工作总结
2014/12/20 职场文书
情人节单身感言
2015/08/03 职场文书
2019销售早会主持词
2019/06/27 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript
python数字图像处理之对比度与亮度调整示例
2022/06/28 Python