【实践】jQuery实现三联联动
网上看过很多关于联动的jq或js代码,最近班上的前端大神教了我一种比网上还简单的jq联动方法,自己琢磨过之后确实比其他方法更简单更简洁所以在这里分享一下
先上html代码
<div id="select-form">
<select id="provinse" name="">
<option>请选择省</option>
</select> <select id="city" name="">
<option>请选择市</option>
</select> <select id="town" name="">
<option>请选择区/县</option>
</select> <a href="#">搜索</a>
</div>
jq代码
//三联联动下拉框代码
var ArryData = {
广东省:{
广州市:"荔湾区,越秀区,海珠区,天河区,芳村区,白云区,黄埔区,番禺市,花都市,增城市,从化市",
深圳市:"罗湖区,福田区,南山区,宝安区,龙岗区,盐田区",
珠海市:"香洲区,斗门区,金湾区",
湛江市:"赤坎区,霞山区,坡头区,麻章区,竹溪县,徐闻县,廉江市,雷州市,吴川市"
},
河北省:{
石家庄市:"深泽县,无极县,赵县",
唐山市:"玉田县,遵化市,迁安市"
},
山东省:{
济南市:"历下区,市中区,槐荫区,天桥区,历城区,长清县,平阴县,济阳县,商河县,章丘市",
青岛市:"市南区,市北区,四方区,黄岛区,崂山区,李沧区,城阳区"
} };//ArryData结束 var i = 0;//先定义一个变量i 用于下面函数遍历元素用
var savedefault = new Array;//创建一个储存上面html预设好的option内容的数组用于初始化
$("#select-form option").each(function(i) {
//遍历所有option 将对应下标的option html内容存入对应的数组下标里
savedefault[i] = $(this).html();
i++;
}); function setdefault(obj){
var index = $(obj).index();//通过index()获得对象索引
$(obj).html("<option>" + savedefault[index] + "</option>");
//通过索引匹配相应数组下标的内容 }; //开始遍历ArryData
$.each(ArryData,function(_provinse){
//遍历数组获取第一部分的内容,即省名
$("#provinse").append("<option>" + _provinse + "</option>"); //在id为provinse的下拉框下添加选择内容
}); $("#provinse").change(function(){
//当省份下拉列表内容发生变化时执行以下方法
setdefault("#city");//初始化市的选择框值
setdefault("#town");//初始化区/县的值 $.each(ArryData,function(_provinse,content){
//content包含的内容就是第二部分的内容,即市名以及后面各区/县名
if($("#provinse option:selected").text() == _provinse){//选择的省名与数组的省名相同,在id为city里增加对应内容的option
$.each(content,function(_city,_town){
$("#city").append("<option>" + _city + "</option>");
});
$("#city").change(function(){
setdefault("#town");
$.each(content,function(_city,_town){//这里将第二部分又分成了两部分,一部分是市名 _city,另一部分是区/县名 _town
if($("#city option:selected").text() == _city){//这里也是一样,当城市名内容更改后对应的区/县名也改成与之对应的内容
$.each(_town.split(","),function(){//将 _town 里面的内容用逗号分隔开一个一个元素
$("#town").append("<option>" + this + "</option>");
});
}; }); }); } });
}); });
最后还得感谢帮助我的大神@进击的前端狗
【实践】jQuery实现三联联动的更多相关文章
- 【实践】用for-in 循环实现三联联动
之前用jq 做过一次三联联动以及四联联动 现在为了更好地了解对象用js的原生方式做了一次 *本节要点方法: obj.selectedIndex 获取下拉列表选中的option 的索引 obj.o ...
- Json 基于jQuery+JSON的省市联动效果
helloweba.com 作者:月光光 时间:2012-09-12 21:57 标签: jQuery JSON Ajax 省市联动 省市区联动下拉效果在WEB中应用非常广泛,尤其在一些 ...
- Jquery第三篇【AJAX 相关的API】
前言 前面我们已经学了讲解了Jquery的选择器,关于DOM 的API还有事件的API.本博文需要讲解Jquery对AJAX的支持- 我们在开始使用JavaScript学习AJAX的时候,创建异步对象 ...
- 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下 ...
- 项目一:第九天 1、前台客户登录 2、Jquery citypicker省市区三级联动插件 4、业务受理(在线下单)
1. 前台客户登录 2. Jquery citypicker省市区三级联动插件 3. 百度地图介绍 4. 业务受理(在线下单) 1 实现前台系统登录功能 1.1 Md5加密 admin(明文)---- ...
- 《CMake实践》笔记三:构建静态库(.a) 与 动态库(.so) 及 如何使用外部共享库和头文件
<CMake实践>笔记一:PROJECT/MESSAGE/ADD_EXECUTABLE <CMake实践>笔记二:INSTALL/CMAKE_INSTALL_PREFIX &l ...
- 简单jquery实现select三级联动
简单的jquery实现select三级联动 代码如下: <!DOCTYPE html> <html> <head> <meta charset="u ...
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
机器学习算法与Python实践之(三)支持向量机(SVM)进阶 机器学习算法与Python实践之(三)支持向量机(SVM)进阶 zouxy09@qq.com http://blog.csdn.net/ ...
- 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划
菜鸟Scrum敏捷实践系列索引 菜鸟Scrum敏捷实践系列(一)用户故事概念 菜鸟Scrum敏捷实践系列(二)用户故事验收 菜鸟Scrum敏捷实践系列(三)用户故事的组织---功能架构的规划 采用Sc ...
随机推荐
- java输入一个字符串,打印出该字符串中字符的所有排列,随机打乱排序
import java.util.ArrayList;import java.util.Collections;import java.util.List; public class Test7{ ...
- JAVA集合迭代遍历和特性介绍
数组.集合:都是一种容器,用一个对象管理多个对象:数组不能自动增长:只能存放同类型的元素 集合能自动扩容:部分集合允许存放不同类型的元素: 1.List: 有顺序的,允许存放重复的元素: 遍历:for ...
- FZU1894 单调队列
S - 1019 Time Limit:1500MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Sta ...
- 64位虚拟机安装64位ubuntu出现问题
virtualbox 出现this kernel requires an an x86-64 cpu 错误 如题,但是主机是win8 64位,使用virtualbox安装ubuntu-12.04.3- ...
- HTML - 毛玻璃 滤镜 模糊
css 秘密花园 http://dabblet.com/gist/d9f243ddd7dbffa341a4 场景,背景图片 + 毛玻璃遮盖 原理:利用background的cover特性,将毛玻璃的区 ...
- 【iCore3双核心板】iCore3双核心板使用说明(图文)
1.iCore3供电.程序下载线路连接示意图(使用iTool2) 2.iCore3供电.程序下载线路连接示意图(使用J-link和Blaster) 3.iCore3供电.读U盘线路连接示意图
- php使用p3p实现cookies跨域设置 实现单点登录,全站登录
P3P Header is present: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC ...
- app与后台通信协议
通用的语言有很多种,例如英语和中文,在网络的通讯中,通用的协议有很多,其中http是被最广泛使用的.如果是私有的协议,那就只能自己设计了. 用http是最方便的,如果是私有协议,包含协议的封装和拆解, ...
- 设置sublime text2/3中默认预览浏览器快捷键的方法
各位前端大神们,大家在用IDE编辑器的时候喜欢用哪些呢?是Dreamweaver.Zend Studio.editplus又或者是sublime text?今天马浩周给大家就要说说设置sublime ...
- maven项目导入,包名出现异常-多出一个java的前缀
maven工程导入项目的时候,整个结构出现混乱,如下图所示,包名前面莫名其妙的出现了java的前缀: 原因是导入错误,重新导入即可.