通过隐藏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 相关文章推荐
在textarea文本域中显示HTML代码的方法
Mar 06 Javascript
JS类中定义原型方法的两种实现的区别
Mar 08 Javascript
Javascript中的isNaN函数使用说明
Nov 10 Javascript
热点新闻滚动特效的js代码
Aug 17 Javascript
js单例模式详解实例
Nov 21 Javascript
jQuery实现高亮显示的方法
Mar 10 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
JavaScript调试的多个必备小Tips
Jan 15 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
Mongoose经常返回e11000 error的原因分析
Mar 29 Javascript
node.js中fs.stat与fs.fstat的区别详解
Jun 01 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
解析使用ThinkPHP应该掌握的调试手段
2013/06/20 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
php数组查找函数总结
2014/11/18 PHP
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
推荐4个原生javascript常用的函数
2015/01/12 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
jquery实现从数组移除指定的值
2015/06/24 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
2015/12/03 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
深入理解JavaScript 参数按值传递
2017/05/24 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
浅谈Vue SSR中的Bundle的具有使用
2019/11/21 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
微信小程序实现音频文件播放进度的实例代码
2020/03/02 Javascript
javascript的hashCode函数实现代码小结
2020/08/11 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
使用pyecharts在jupyter notebook上绘图
2020/04/23 Python
python获取指定字符串中重复模式最高的字符串方法
2018/06/29 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
django 数据库返回queryset实现封装为字典
2020/05/19 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
2020/12/10 Python
python re.match()用法相关示例
2021/01/27 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
介绍一下linux的文件权限
2014/07/20 面试题
2014年银行员工年终自我评价
2014/09/19 职场文书
重温经典:乔布斯在斯坦福大学的毕业演讲(双语)
2019/08/26 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
linux下导入、导出mysql数据库命令的实现方法
2021/05/26 MySQL