简单实用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 学习笔记 选择器之二
Jul 23 Javascript
Js如何判断客户端是PC还是手持设备简单分析
Nov 22 Javascript
jquery的clone方法应用于textarea和select的bug修复
Jun 26 Javascript
JS设置网页图片vspace和hspace属性的方法
Apr 01 Javascript
jquery获取select选中值的方法分析
Dec 22 Javascript
JQuery datepicker 用法详解
Dec 25 Javascript
jQuery取得iframe中元素的常用方法详解
Jan 14 Javascript
详解js的异步编程技术的方法
Feb 09 Javascript
基于bootstrap实现收缩导航条
Mar 17 Javascript
80%应聘者都不及格的JS面试题
Mar 21 Javascript
jQuery实现全选、反选和不选功能
Aug 16 jQuery
Vue.js构建你的第一个包并在NPM上发布的方法步骤
May 01 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实现简单洗牌算法
2013/06/18 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
PHP的PDO预定义常量讲解
2019/01/24 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
PHP fopen中文文件名乱码问题解决方案
2020/10/28 PHP
获取JavaScript用户自定义类的类名称的代码
2007/03/08 Javascript
jquery 注意事项与常用语法小结
2010/06/07 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
js离开或刷新页面检测(且兼容FF,IE,Chrome)
2014/03/05 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
2016/02/17 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
JS数组splice操作实例分析
2019/10/12 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python实现图片尺寸缩放脚本
2018/03/10 Python
python word转pdf代码实例
2019/08/16 Python
python tkinter组件摆放方式详解
2019/09/16 Python
python 实现多线程下载视频的代码
2019/11/15 Python
个人自我鉴定范文
2013/10/04 职场文书
晚归检讨书
2014/02/19 职场文书
护士节活动总结
2014/08/29 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
好好学习保证书
2015/02/26 职场文书
2015年社区统计工作总结
2015/04/21 职场文书
用python画城市轮播地图
2021/05/28 Python
Python答题卡识别并给出分数的实现代码
2021/06/22 Python
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python