通过隐藏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 相关文章推荐
asp(javascript)全角半角转换代码 dbc2sbc
Aug 06 Javascript
jQuery each()小议
Mar 18 Javascript
jquery插件之easing 动态菜单
Aug 21 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 Javascript
超炫的jquery仿flash导航栏特效
Nov 11 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
jQuery插件支持同一页面被多次调用
Feb 14 Javascript
浅谈js中function的参数默认值
Feb 20 Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 Javascript
node 标准输入流和输出流代码实例
Sep 19 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
Jul 28 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
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
destoon二次开发常用数据库操作
2014/06/21 PHP
php实现统计目录文件大小的函数
2015/12/25 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
jQuery find和children方法使用
2011/01/31 Javascript
JS和jquery获取各种屏幕的宽度和高度的代码
2013/08/02 Javascript
JSON+HTML实现国家省市联动选择效果
2014/05/18 Javascript
AngularJS模块管理问题的非常规处理方法
2015/04/29 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jquery判断复选框是否选中进行答题提示特效
2015/12/10 Javascript
jQuery获取字符串中出现最多的数
2016/02/22 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
深入理解Vue Computed计算属性原理
2018/05/29 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
python使用socket连接远程服务器的方法
2015/04/29 Python
python实现判断数组是否包含指定元素的方法
2015/07/15 Python
python日志模块logbook使用方法
2019/09/19 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
new修饰符是起什么作用
2015/06/28 面试题
工程监理应届生求职信
2013/11/09 职场文书
大学生自荐信
2013/12/11 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
2015年建党94周年演讲稿
2015/03/19 职场文书
家长意见和建议怎么写
2015/06/04 职场文书
美容院管理规章制度
2015/08/05 职场文书
小学体育跳绳课教学反思
2016/02/16 职场文书
深入理解Pytorch微调torchvision模型
2021/11/11 Python
利用js实现简单开关灯代码
2021/11/23 Javascript