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 兼容firefox的一些问题
May 21 Javascript
JavaScript 应用技巧集合[推荐]
Aug 30 Javascript
JavaScript prototype对象的属性说明
Mar 13 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
JavaScript访问字符串中单个字符的两种方法
Jul 03 Javascript
JavaScript实现的类字典插入或更新方法实例
Jul 10 Javascript
详解JavaScript时间格式化
Dec 23 Javascript
Vue.js实现一个SPA登录页面的过程【推荐】
Apr 29 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
Mar 16 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
Apr 26 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
Nov 12 Javascript
修改Vue打包后的默认文件名操作
Aug 12 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
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
利用javascript中的call实现继承
2007/01/22 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
javascript弹出层输入框(示例代码)
2013/12/11 Javascript
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
javascript检测是否联网的实现代码
2014/09/28 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
Vue实现选择城市功能
2017/05/27 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
JavaScript如何实现防止重复的网络请求的示例
2021/01/28 Javascript
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
Python入门_学会创建并调用函数的方法
2017/05/16 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
2017/11/29 Python
python爬取m3u8连接的视频
2018/02/28 Python
python中退出多层循环的方法
2018/11/27 Python
python截取两个单词之间的内容方法
2018/12/25 Python
Python系统公网私网流量监控实现流程
2020/11/23 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
会计系个人求职信范文分享
2013/12/20 职场文书
公务员综合考察材料
2014/02/01 职场文书
环保倡议书怎么写
2014/05/16 职场文书
北京奥运会主题口号
2014/06/13 职场文书
党在我心中演讲稿
2014/09/02 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
出纳岗位职责
2015/01/31 职场文书
《花钟》教学反思
2016/02/17 职场文书
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android