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在IE7下无法使用 $.ajax解决方法
Nov 11 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
基于jquery实现左右按钮点击的图片切换效果
Jan 27 Javascript
在Mac OS上安装使用Node.js的项目自动化构建工具Gulp
Jun 18 Javascript
从零学习node.js之模块规范(一)
Feb 21 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
vue编译打包本地查看index文件的方法
Feb 23 Javascript
移动端手指操控左右滑动的菜单
Sep 08 Javascript
解决vue scoped html样式无效的问题
Oct 24 Javascript
vue实现动态给id赋值,点击事件获取当前点击的元素的id操作
Nov 09 Javascript
JavaScript分页组件使用方法详解
Jul 26 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中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
PHP中的use关键字概述
2014/07/23 PHP
php连接oracle数据库及查询数据的方法
2014/12/29 PHP
PHP中ID设置自增后不连续的原因分析及解决办法
2016/08/21 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
2016/10/08 PHP
老生常谈ThinkPHP中的行为扩展和插件(推荐)
2017/05/05 PHP
PHP+redis实现的限制抢购防止商品超发功能详解
2019/09/19 PHP
Yii框架布局文件的动态切换操作示例
2019/11/11 PHP
小型js框架veryide.librar源代码
2009/03/05 Javascript
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
文本框水印提示效果的简单实现代码
2014/02/22 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
vue父组件向子组件动态传值的两种方法
2017/11/11 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
python批量提取word内信息
2015/08/09 Python
Flask之flask-script模块使用
2018/07/26 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
Django的models模型的具体使用
2019/07/15 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
送给他或她的礼物:FUN.com
2018/08/17 全球购物
大客户销售经理职责
2013/12/04 职场文书
军训考核自我鉴定
2014/02/13 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
地心历险记观后感
2015/06/15 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
2016公司中秋节寄语
2015/12/07 职场文书
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android