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 相关文章推荐
js实现图片放大缩小功能后进行复杂排序的方法
Nov 08 Javascript
P3P Header解决Cookie跨域的问题
Mar 12 Javascript
jquery入门必备的基本认识及实例(整理)
Jun 24 Javascript
js获取时间(本周、本季度、本月..)
Nov 22 Javascript
javascript生成随机大小写字母的方法
Feb 20 Javascript
不得不分享的JavaScript常用方法函数集(上)
Dec 23 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
Sep 15 Javascript
Vue.js实现表格渲染的方法
Sep 07 Javascript
vue axios封装及API统一管理的方法
Apr 18 Javascript
vue-cli4使用全局less文件中的变量配置操作
Oct 21 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
第七节--类的静态成员
2006/11/16 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
PHP文件读取功能的应用实例
2015/05/08 PHP
php支持中文字符串分割的函数
2015/05/28 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
JavaScript实现星星等级评价功能
2017/03/22 Javascript
微信小程序实现带刻度尺滑块功能
2017/03/29 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
vue图片上传本地预览组件使用详解
2019/02/20 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
[51:15]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-GAMING
2014/05/22 DOTA
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
python进阶教程之函数对象(函数也是对象)
2014/08/30 Python
Python学习笔记之os模块使用总结
2014/11/03 Python
python调用百度语音REST API
2018/08/30 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
CSS3制作翻转效果_动力节点Java学院整理
2017/07/11 HTML / CSS
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
电子信息工程专业推荐信
2014/02/14 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
Angular CLI发布路径的配置项浅析
2021/03/29 Javascript
SQL Server数据库基本概念、组成、常用对象与约束
2022/03/20 SQL Server