JS简单实现多级Select联动菜单效果代码


Posted in Javascript onSeptember 06, 2015

本文实例讲述了JS简单实现多级Select联动菜单效果代码。分享给大家供大家参考。具体如下:

JS联动菜单,简单代码实现JS多级Select联动菜单,也就是大家常用的一款菜单,Select联动状态的菜单,网页上经常见到的效果,希望大家能用得上。

运行效果截图如下:

JS简单实现多级Select联动菜单效果代码

在线演示地址如下:

具体代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>JS联动下拉框</title>
<script language="javascript" >
/* 
** ====================================
** 类名:CLASS_LIANDONG_YAO 
** 功能:多级连动菜单 
** 作者:YAODAYIZI 
**/  
 function CLASS_LIANDONG_YAO(array)
 {
 //数组,联动的数据源
  this.array=array; 
  this.indexName='';
  this.obj='';
  //设置子SELECT
 // 参数:当前onchange的SELECT ID,要设置的SELECT ID
 this.subSelectChange=function(selectName1,selectName2)
  {
  //try
  //{
 var obj1=document.all[selectName1];
 var obj2=document.all[selectName2];
 var objName=this.toString();
 var me=this;
 obj1.onchange=function()
 {
  me.optionChange(this.options[this.selectedIndex].value,obj2.id)
 }
  }
  //设置第一个SELECT
 // 参数:indexName指选中项,selectName指select的ID
  this.firstSelectChange=function(indexName,selectName) 
  {
  this.obj=document.all[selectName];
  this.indexName=indexName;
  this.optionChange(this.indexName,this.obj.id)
  }
 // indexName指选中项,selectName指select的ID
  this.optionChange=function (indexName,selectName)
  {
 var obj1=document.all[selectName];
 var me=this;
 obj1.length=0;
 obj1.options[0]=new Option("请选择",'');
 for(var i=0;i<this.array.length;i++)
 { 
  if(this.array[i][1]==indexName)
  {
  //alert(this.array[i][1]+" "+indexName);
 obj1.options[obj1.length]=new Option(this.array[i][2],this.array[i][0]);
  }
 }
  } 
 }
 </script>
</head>
<body>
<form name="form1" method="post">
   
  <SELECT ID="s1" NAME="s1" >
 <OPTION selected></OPTION>
  </SELECT>
  <SELECT ID="s2" NAME="s2" >
 <OPTION selected></OPTION>
  </SELECT>
  <SELECT ID="s3" NAME="s3">
 <OPTION selected></OPTION>
  </SELECT>
  <br>
  <br><br>
  <SELECT ID="x1" NAME="x1" >
 <OPTION selected></OPTION>
  </SELECT>
  <SELECT ID="x2" NAME="x2" >
 <OPTION selected></OPTION>
  </SELECT>
  <SELECT ID="x3" NAME="x3">
 <OPTION selected></OPTION>
  </SELECT>
  <SELECT ID="x4" NAME="x4">
 <OPTION selected></OPTION>
  </SELECT>
  <SELECT ID="x5" NAME="x5">
 <OPTION selected></OPTION>
  </SELECT>
 </form>
 </body>
<script language="javascript">
//例子1-------------------------------------------------------------
//数据源
var array=new Array();
 array[0]=new Array("华南地区","根目录","华南地区"); //数据格式 ID,父级ID,名称
 array[1]=new Array("华北地区","根目录","华北地区");
 array[2]=new Array("上海","华南地区","上海");
 array[3]=new Array("广东","华南地区","广东");
 array[4]=new Array("徐家汇","上海","徐家汇");
 array[5]=new Array("普托","上海","普托"); 
 array[6]=new Array("广州","广东","广州");
 array[7]=new Array("湛江","广东","湛江");
 //--------------------------------------------
 //这是调用代码
 var liandong=new CLASS_LIANDONG_YAO(array) //设置数据源
 liandong.firstSelectChange("根目录","s1"); //设置第一个选择框
 liandong.subSelectChange("s1","s2"); //设置子级选择框
 liandong.subSelectChange("s2","s3");
 //例子2-------------------------------------------------------------
 //数据源 
 var array2=new Array();//数据格式 ID,父级ID,名称
 array2[0]=new Array("测试测试","根目录","测试测试"); 
 array2[1]=new Array("华北地区","根目录","华北地区");
 array2[2]=new Array("上海","测试测试","上海");
 array2[3]=new Array("广东","测试测试","广东");
 array2[4]=new Array("徐家汇","上海","徐家汇");
 array2[5]=new Array("普托","上海","普托"); 
 array2[6]=new Array("广州","广东","广州");
 array2[7]=new Array("湛江","广东","湛江");
 array2[8]=new Array("不知道","湛江","不知道");
 array2[9]=new Array("5555","湛江","555");
 array2[10]=new Array("++++","不知道","++++");
 array2[11]=new Array("111","徐家汇","111");
 array2[12]=new Array("222","111","222");
 array2[13]=new Array("333","222","333");
 //--------------------------------------------
 //这是调用代码
 //设置数据源
 var liandong2=new CLASS_LIANDONG_YAO(array2);
 //设置第一个选择框
 liandong2.firstSelectChange("根目录","x1");
 //设置子选择框
 liandong2.subSelectChange("x1","x2")
 liandong2.subSelectChange("x2","x3")
 liandong2.subSelectChange("x3","x4")
 liandong2.subSelectChange("x4","x5")
</script>
</html>

希望本文所述对大家的JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 图片切换插件(代码比较少)
May 07 Javascript
利用JS实现浏览器的title闪烁
Jul 08 Javascript
使用js获取图片原始尺寸
Dec 03 Javascript
form表单转Json提交的方法(推荐)
Sep 23 Javascript
js在ie下打开对话窗口的方法小结
Oct 24 Javascript
Require.js的基本用法详解
Jul 03 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
Sep 18 Javascript
vue数组对象排序的实现代码
Jun 20 Javascript
js异步上传多张图片插件的使用方法
Oct 22 Javascript
微信小程序new Date()方法失效问题解决方法
Jul 29 Javascript
vue 实现input表单元素的disabled示例
Oct 28 Javascript
微信小程序实现吸顶特效
Jan 08 Javascript
Javascript实现快速排序(Quicksort)的算法详解
Sep 06 #Javascript
简单谈谈javascript Date类型
Sep 06 #Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 #Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 #Javascript
jQuery焦点图轮播特效代码分享(3款)
Sep 05 #Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 #Javascript
javascript中日期函数new Date()的浏览器兼容性问题
Sep 05 #Javascript
You might like
十天学会php之第二天
2006/10/09 PHP
PHP5 面向对象程序设计
2008/02/13 PHP
php ajax 静态分页过程形式
2011/09/02 PHP
PHP中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
基于empty函数的判断详解
2013/06/17 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
浅谈PHP无限极分类原理
2019/03/14 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
2014/08/21 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
详解redux异步操作实践
2018/08/15 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
微信小程序与公众号卡券/会员打通的问题
2019/07/25 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
tensorflow识别自己手写数字
2018/03/14 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
Python3和PyCharm安装与环境配置【图文教程】
2020/02/14 Python
Python学习之路安装pycharm的教程详解
2020/06/17 Python
python右对齐的实例方法
2020/07/05 Python
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
小学安全教育月活动总结
2014/07/07 职场文书
公司更名通知函
2015/04/24 职场文书
2015年党员创先争优公开承诺书
2015/04/27 职场文书
起诉状范本
2015/05/20 职场文书
文艺节目主持词
2015/07/06 职场文书
2015年小学生暑假总结
2015/07/13 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
如何用python绘制雷达图
2021/04/24 Python