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 相关文章推荐
javascript中onclick(this)用法介绍
Apr 19 Javascript
jquery $.each 和for怎么跳出循环终止本次循环
Sep 27 Javascript
javascript实现添加附件功能的方法
Nov 18 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
Dec 17 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
Apr 29 Javascript
jQuery 调用WebService 实例讲解
Jun 28 Javascript
微信小程序 使用canvas制作K线实例详解
Jan 12 Javascript
JS如何设置元素样式的方法示例
Aug 28 Javascript
vue.js实例对象+组件树的详细介绍
Oct 20 Javascript
手写Node静态资源服务器的实现方法
Mar 20 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
Apr 20 Javascript
layui表格分页 记录勾选的实例
Sep 02 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
星际玩家的三大定律
2020/03/04 星际争霸
PHP 和 XML: 使用expat函数(一)
2006/10/09 PHP
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
Thinkphp中的curd应用实用要点
2015/01/04 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
PHP6新特性分析
2016/03/03 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
浅谈jQuery中height与width
2015/07/06 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
Python脚本处理空格的方法
2016/08/08 Python
python实现折半查找和归并排序算法
2017/04/14 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
Python绘制堆叠柱状图的实例
2019/07/09 Python
python实现树的深度优先遍历与广度优先遍历详解
2019/10/26 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
2020/02/20 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
2020/03/09 Python
Django-imagekit的使用详解
2020/07/06 Python
python下载的库包存放路径
2020/07/27 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
css3 transform及原生js实现鼠标拖动3D立方体旋转
2016/06/20 HTML / CSS
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
遗嘱继承权公证书
2015/01/26 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS