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 相关文章推荐
JavaScript中令你抓狂的魔术变量
Nov 30 Javascript
javascript 正则替换 replace(regExp, function)用法
May 22 Javascript
AngularJS基础 ng-keypress 指令简单示例
Aug 02 Javascript
浅谈JS之iframe中的窗口
Sep 13 Javascript
值得分享的bootstrap table实例
Sep 22 Javascript
微信小程序 支付后台java实现实例
May 09 Javascript
vue如何使用 Slot 分发内容实例详解
Sep 05 Javascript
详解Element 指令clickoutside源码分析
Feb 15 Javascript
node.js中module模块的功能理解与用法实例分析
Feb 14 Javascript
利用React高阶组件实现一个面包屑导航的示例
Aug 23 Javascript
全网小程序接口请求封装实例代码
Nov 06 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 jQuery
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
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
js计算精度问题小结
2013/04/22 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
微信小程序 解决swiper不显示图片的方法
2017/01/04 Javascript
详解angular element()方法使用
2017/04/08 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
通过实例解析JavaScript常用排序算法
2020/09/02 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
python调用java的Webservice示例
2014/03/10 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Python中作用域的深入讲解
2018/12/10 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
详解python运行三种方式
2019/05/13 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
以工厂直接定价的传奇性能:Ben Hogan Golf
2019/01/04 全球购物
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
本科毕业生的求职信范文
2013/11/20 职场文书
2014五一国际劳动节活动总结范文
2014/04/14 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
借条格式范本
2015/05/25 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL