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 相关文章推荐
你需要知道的JavsScript可以做什么?
Jun 29 Javascript
jQuery 标题的自动翻转实现代码
Oct 14 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
Jan 03 Javascript
jQuery 3.0 的变化及使用方法
Feb 01 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
Feb 02 Javascript
学习AngularJs:Directive指令用法(完整版)
Apr 26 Javascript
Vue.js每天必学之过滤器与自定义过滤器
Sep 07 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
Bootstrap popover 实现鼠标移入移除显示隐藏功能方法
Jan 24 Javascript
详解微信小程序文件下载--视频和图片
Apr 24 Javascript
Vue中多元素过渡特效的解决方案
Feb 05 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
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
JavaScript delete操作符应用实例
2009/01/13 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
jquery div拖动效果示例代码
2013/12/08 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
基于vue2.0实现的级联选择器
2017/06/09 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
python常见排序算法基础教程
2017/04/13 Python
使用python实现个性化词云的方法
2017/06/16 Python
Python快速排序算法实例分析
2017/11/29 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
python 多线程串行和并行的实例
2019/02/22 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
护理学专业推荐信
2013/12/03 职场文书
工程项目经理岗位职责
2013/12/15 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
我的老师教学反思
2014/05/01 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
大学生赌博检讨书
2014/09/22 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
廉洁自律证明
2015/06/24 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers