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 相关文章推荐
jquery 双色表格实现代码
Dec 08 Javascript
JavaScript prototype属性深入介绍
Nov 27 Javascript
javascript实现简单的分页特效
Aug 12 Javascript
js判断数组key是否存在(不用循环)的简单实例
Aug 03 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
jQuery图片轮播功能实例代码
Jan 29 Javascript
在 Angular 中实现搜索关键字高亮示例
Mar 21 Javascript
Angular2实现自定义双向绑定属性
Mar 22 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
Mar 25 Javascript
View.post() 不靠谱的地方你知道多少
Aug 29 Javascript
详解webpack模块加载器兼打包工具
Sep 11 Javascript
ztree加载完成后显示勾选节点的实现代码
Oct 22 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
解析PHP跨站刷票的实现代码
2013/06/18 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
JavaScript面象对象设计
2008/04/28 Javascript
js类定义函数时用prototype与不用的区别示例介绍
2014/06/10 Javascript
JavaScript分页功能的实现方法
2015/04/25 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
jqGrid中文文档之选项设置
2015/12/02 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
layui 上传文件_批量导入数据UI的方法
2019/09/23 Javascript
python开发之str.format()用法实例分析
2016/02/22 Python
Python的多维空数组赋值方法
2018/04/13 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Django 大文件下载实现过程解析
2019/08/01 Python
浅析Django中关于session的使用
2019/12/30 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
HTML5移动端开发遇见的东西
2019/10/11 HTML / CSS
Bally巴利中国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/10/09 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
测试时代收集的软件测试面试题
2013/09/25 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
办公室驾驶员岗位职责
2013/11/15 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
维稳工作情况汇报
2014/10/27 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
《小蝌蚪找妈妈》教学反思
2016/02/23 职场文书
golang特有程序结构入门教程
2021/06/02 Python
Python如何让字典保持有序排列
2022/04/29 Python
MySQL 自动填充 create_time 和 update_time
2022/05/20 MySQL