JQuery实现级联下拉框效果实例讲解


Posted in Javascript onSeptember 17, 2015

用JQuery和select来实现汽车厂商和汽车类型的联动,参考过程如下
效果图:

     JQuery实现级联下拉框效果实例讲解

逻辑分析图:

JQuery实现级联下拉框效果实例讲解

html代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>级联下拉框效果</title> 
<link rel="stylesheet" type="text/css" href="css/chainselect.css"> 
<script language="javascript" type="text/javascript" src="js/jquery.js"></script> 
<script language="javascript" type="text/javascript" src="js/chainselect.js"></script> 
</head> 
 
<body> 
 <div class="car"> 
  <span class="carname"> 
   汽车厂商: 
   <select> 
    <option value="">请选择汽车厂商</option> 
    <option value="BMW">宝马</option> 
    <option value="Audi">奥迪</option> 
    <option value="VW">大众</option> 
   </select> 
   <img src="images/pfeil.gif" alt="有数据"/> 
  </span> 
  <span class="cartype"> 
   汽车类型: 
   <select></select> 
  </span>  
 </div> 
</body> 
</html>

css代码:

.car { 
 text-align:center; 
} 
.cartype{ 
 display:none; 
}

js代码

$(document).ready(function(){ 
 //找到下拉框 
 var carnameSelect = $(".carname").children("select"); 
 var cartypeSelect = $(".cartype").children("select"); 
  
 //给下拉框注册事件 
 carnameSelect.change(function(){ 
  var carnameValue = $(this).val(); 
  if( carnameValue != ""){ 
   //carnameValue不为空的情况接着判断 
   if(!carnameSelect.data(carnameValue)){ 
    //不在缓冲区中,需要向服务器请求 
    $.post("ChainSelect",{keyword:carnameValue,type:"top"},function(data){ 
     if (data.length != 0){ 
      //返回的数据不为空 
      cartypeSelect.html(""); 
      $("<option value=''>请选择汽车类型</option>").appendTo(cartypeSelect); 
      for(var i = 0;i < data.length; i++ ){ 
       $("<option value =' " + data[i] + " '> "+ data[i] +"</option>").appendTo(cartypeSelect); 
      } 
      cartypeSelect.parent().show(); 
      carnameSelect.next().show(); 
     }else{ 
      //返回的数据为空 
      cartypeSelect.parent().hide(); 
      carnameSelect.next().hide(); 
     } 
     carnameSelect.data(carnameValue,data); 
    },"json"); 
   }else{ 
    //在缓冲区中 
    var data = carnameSelect.data(carnameValue); 
    if (data.length != 0){ 
      //返回的数据不为空 
      cartypeSelect.html(""); 
      $("<option value=''>请选择汽车类型</option>").appendTo(cartypeSelect); 
      for(var i = 0;i < data.length; i++ ){ 
       $("<option value =' " + data[i] + " '> "+ data[i] +"</option>").appendTo(cartypeSelect); 
      } 
      cartypeSelect.parent().show(); 
      carnameSelect.next().show(); 
     }else{ 
      //返回的数据为空 
      cartypeSelect.parent().hide(); 
      carnameSelect.next().hide(); 
     } 
   } 
  }else{ 
   //carnameValue为空的情况,隐藏第二个下拉框 
   cartypeSelect.parent().hide(); 
   carnameSelect.next().hide(); 
  } 
 }); 
  
});

如果大家还想深入学习,可以点击jquery下拉框效果汇总、JavaScript下拉框效果汇总进行学习。

以上就是利用JQuery和select实现级联下拉框的小例子,希望对大家的学习有所帮助。

Javascript 相关文章推荐
一端时间轮换的广告
Jun 26 Javascript
JQuery 文本框使用小结
May 22 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
Mar 12 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
Dec 06 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
Jun 02 Javascript
浅谈webpack对样式的处理
Jan 05 Javascript
vue实现条件判断动态绑定样式的方法
Sep 29 Javascript
angular6的响应式表单的实现
Oct 10 Javascript
node.js学习笔记之koa框架和简单爬虫练习
Dec 13 Javascript
NProgress显示顶部进度条效果及使用详解
Sep 21 Javascript
JavaScript使用localStorage存储数据
Sep 25 Javascript
JS+CSS实现精美的二级导航效果代码
Sep 17 #Javascript
jQuery实现仿腾讯迷你首页选项卡效果代码
Sep 17 #Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
Sep 17 #Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
Sep 17 #Javascript
jQuery实现折叠、展开的菜单组效果代码
Sep 16 #Javascript
ANGULARJS中使用JQUERY分页控件
Sep 16 #Javascript
js实现tab切换效果实例
Sep 16 #Javascript
You might like
php5新改动之短标记启用方法
2008/09/11 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
jquery 自定义容器下雨效果可将下雨图标改为其他
2014/04/23 Javascript
javascript操作ul中li的方法
2015/05/14 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
Vue.js+Layer表格数据绑定与实现更新的实例
2018/03/07 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
浅谈python内置变量-reversed(seq)
2017/06/21 Python
Python numpy 点数组去重的实例
2018/04/18 Python
Pycharm 操作Django Model的简单运用方法
2018/05/23 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
详解python中的lambda与sorted函数
2020/09/04 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
类和结构的区别
2012/08/15 面试题
C# Debug和Testing相关面试题
2015/10/25 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
大学自荐信
2013/12/12 职场文书
失业者真诚求职信范文
2013/12/25 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
读书活动总结
2014/04/28 职场文书
二年级语文下册复习计划
2015/01/19 职场文书
开票员岗位职责
2015/02/12 职场文书
校长个人总结
2015/03/03 职场文书
使用pandas或numpy处理数据中的空值(np.isnan()/pd.isnull())
2021/05/14 Python
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android