通过隐藏option实现select的联动效果


Posted in Javascript onNovember 10, 2009
<!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> 
<title>Untitled Page</title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 
<script type="text/javascript" language="javascript"> 
$(function(){ 
//Bind the change event 
$("#dropLang").unbind("change", eDropLangChange).bind("change", eDropLangChange); 
$("#dropFrame").unbind("change", eDropFrameChange).bind("change", eDropFrameChange); 
}); //The change event of language dropdown-list 
var eDropLangChange = function(){ 
//The selected value of the language dropdown-list. 
var selectedValue = $(this).val(); 
//show all options. 
$("#dropFrame").children("span").each(function(){ 
$(this).children().clone().replaceAll($(this)); //use the content of the <span> replace the <span> 
}); 
//Filter the data through selected value of language dropdown-list except <Please Select>. 
//If the option is <Please Select>, it only needs to show all and hide nothing. 
if(parseInt(selectedValue) != 0){ 
//hide the option whose parentid is not equal with selected value of language dropdown-list. 
//The <Please Select> option should not be hidden. 
$("#dropFrame").children("option[parentid!='" + selectedValue + "'][value!='0']").each(function(){ 
$(this).wrap("<span style='display:none'></span>"); //add a <span> around the <option> and hide the <span>. 
}); 
} 
}; 
//The change event of frame dropdown-list. 
var eDropFrameChange = function(){ 
//Find the selected option of frame dropdown-list. set the value of language dropdown-list by selected parentid. 
$("#dropLang").val($(this).children("option:selected").attr("parentid")); 
}; 
</script> 
</head> 
<body> 
<div> 
<select id="dropLang"> 
<option selected="selected" value="0"><Please Select></option> 
<option value="1">Javascript</option> 
<option value="2">Java</option> 
<option value="3">C#</option> 
</select> 
<select id="dropFrame"> 
<option selected="selected" value="0"><Please Select></option> 
<option value="1" parentid="1">JQuery</option> 
<option value="2" parentid="1">Prototype</option> 
<option value="3" parentid="2">Struts</option> 
<option value="4" parentid="2">Spring</option> 
<option value="5" parentid="2">Velocity</option> 
<option value="6" parentid="2">Hibernate</option> 
<option value="7" parentid="3">ASP.NET MVC</option> 
<option value="8" parentid="3">Castle</option> 
</select> 
</div> 
</body> 
</html>

这样,通过上一个下拉框的选择过滤下拉框的内容,基本实现了隐藏<option>的效果,当然,也可以把这种方法利用在下拉框级联选择的功能上,无需Ajax。

该代码在IE6,IE7,Chrome2,Firefox3。5下验证通过。

Javascript 相关文章推荐
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
ajax java 实现自动完成功能
Dec 19 Javascript
js的onload事件及初始化按钮事件示例代码
Sep 25 Javascript
浅谈jquery点击label触发2次的问题
Jun 12 Javascript
js实现的光标位置工具函数示例
Oct 03 Javascript
JavaScript实现数组降维详解
Jan 05 Javascript
vue页面跳转后返回原页面初始位置方法
Feb 11 Javascript
浅谈在不使用ssr的情况下解决Vue单页面SEO问题(2)
Nov 08 Javascript
JavaScript设计模式之观察者模式实例详解
Jan 16 Javascript
Javascript作用域和作用域链原理解析
Mar 03 Javascript
JS前端基于canvas给图片添加水印
Nov 11 Javascript
Riot.js 快速的JavaScript单元测试框架
Nov 09 #Javascript
asp.net HttpHandler实现图片防盗链
Nov 09 #Javascript
为javascript添加String.Format方法
Aug 11 #Javascript
prototype 中文参数乱码解决方案
Nov 09 #Javascript
jQuery 常见学习网站与参考书
Nov 09 #Javascript
Javascript select下拉框操作常用方法
Nov 09 #Javascript
页面中js执行顺序
Nov 09 #Javascript
You might like
ZF框架实现发送邮件的方法
2015/12/03 PHP
为何说PHP引用是个坑,要慎用
2018/04/02 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
简单实用jquery版三级联动select示例
2013/07/04 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JavaScript编写页面半透明遮罩效果的简单示例
2016/05/09 Javascript
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
2018/04/26 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
利用Angular2的Observables实现交互控制的方法
2018/12/27 Javascript
js设计模式之单例模式原理与用法详解
2019/08/15 Javascript
ES6的异步操作之promise用法和async函数的具体使用
2019/12/06 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
python根据经纬度计算距离示例
2014/02/16 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
python调用支付宝支付接口流程
2019/08/15 Python
Python 防止死锁的方法
2020/07/29 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
光声世纪笔试题目
2012/08/25 面试题
求职信内容怎么写
2014/05/26 职场文书
工业设计专业自荐书
2014/06/05 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
领导班子整改方案
2014/10/25 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
居安思危观后感
2015/06/11 职场文书
python 爬取华为应用市场评论
2021/05/29 Python
python基础入门之普通操作与函数(三)
2021/06/13 Python
分析mysql中一条SQL查询语句是如何执行的
2021/06/21 MySQL
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
笔记本自带的win11如何跳过联网激活?
2022/04/20 数码科技