JavaScript简单下拉菜单特效


Posted in Javascript onSeptember 13, 2016

本文实例为大家分享了js下拉菜单特效,供大家参考,具体内容如下

实例1:联动的省市下拉菜单

onchange 事件会在域的内容改变时发生。

<script type="text/javascript">     
      var arr = new Array();       //数据数组
      //定义数据,结构为:id、名字、父id
      arr[arr.length] = [1, '北京市', null];
      arr[arr.length] = [2, '四川省', null];
      arr[arr.length] = [3, '广东省', null];
      arr[arr.length] = [4, '北京市', 1];
      arr[arr.length] = [5, '成都市', 2];
      arr[arr.length] = [6, '广州市', 3];
      arr[arr.length] = [7, '深圳市', 3];
      //动态设置下拉项目
      function fillOptions(type){
        if(type == 'province'){
          //获取省份下拉菜单的DOM
          var province = document.getElementById("province");
          province.innerHTML = '';    //内容先置空
          //填充省的字符
          var proStr = '<option value=""></option>';
          //遍历数组
          for(var i=0; i<arr.length; i++){
            var item = arr[i];   //当前项
            //如果没有父id,则是省份
            if(item[2] == null)
              proStr += '<option value='+item[0]+'>'+item[1]+'</option>';
          }
          province.innerHTML = proStr;//填充新内容
        }else if(type == 'city'){
          //获取当前的省份的id
          var currProId = document.getElementById("province").value;
          if(currProId == '')
            return false;
          //获取城市下拉菜单的DOM
          var city = document.getElementById("city");
          city.innerHTML = '';      //内容先置空
          //填充市的字符
          var cityStr = '<option value=""></option>';
          //遍历数组
          for(var i=0; i<arr.length; i++){
            var item = arr[i];   //当前项
            //判断是否为当前省下的城市
            if(item[2] == currProId)
              cityStr += '<option value='+item[0]+'>'+item[1]+'</option>';
          }
          city.innerHTML = cityStr    ;//填充新内容
        }
      }
    </script>

<body style="text-align:center;" onload="fillOptions('province');">
    <!-- 定义下拉菜单 -->
    省:<select id="province" onchange="fillOptions('city')"></select><br/><br/>
    市:<select id="city"></select><br/><br/>
  </body>

实例2:三级联动的省市县下拉菜单

<script type="text/javascript">     
      var arr = new Array();       //数据数组
      //定义数据,结构为:id、名字、父id
      arr[arr.length] = [1, '北京市', null];
      arr[arr.length] = [2, '四川省', null];
      arr[arr.length] = [3, '广东省', null];
      arr[arr.length] = [4, '北京市', 1];
      arr[arr.length] = [5, '成都市', 2];
      arr[arr.length] = [6, '广州市', 3];
      arr[arr.length] = [7, '深圳市', 3];
      arr[arr.length] = [8, '武侯区', 5];
      arr[arr.length] = [9, '青羊区', 5];
      arr[arr.length] = [10, '白云区', 6];
      arr[arr.length] = [11, '增城市', 6];
      arr[arr.length] = [12, '从化市', 6];
      //动态设置下拉项目
      function fillOptions(type){
        if(type == 'province'){
          //获取省份下拉菜单的DOM
          var province = document.getElementById("province");
          province.innerHTML = '';    //内容先置空
          //填充省的字符
          var proStr = '<option value=""></option>';         
          for(var i=0; i<arr.length; i++){  //遍历数组
            var item = arr[i];     //当前项
            //如果没有父id,则是省份
            if(item[2] == null)
              proStr += '<option value='+item[0]+'>'+item[1]+'</option>';
          }
          province.innerHTML = proStr;  //填充新内容
        }else if(type == 'city'){
          //获取当前的省份的id
          var currProId = document.getElementById("province").value;
          if(currProId == '')
            return false;
          //获取城市下拉菜单的DOM
          var city = document.getElementById("city");
          city.innerHTML = '';      //内容先置空
          //填充市的字符
          var cityStr = '<option value=""></option>';         
          for(var i=0; i<arr.length; i++){  //遍历数组
            var item = arr[i];     //当前项
            //判断是否为当前省下的城市
            if(item[2] == currProId)
              cityStr += '<option value='+item[0]+'>'+item[1]+'</option>';
          }
          city.innerHTML = cityStr    ;//填充新内容
        }else if(type == 'area'){
          //获取当前城市的id
          var currCityId = document.getElementById("city").value;
          if(currCityId == '')
            return false;
          //获取区县下拉菜单的DOM
          var area = document.getElementById("area");
          area.innerHTML = '';      //内容先置空
          //填充区县的字符
          var areaStr = '<option value=""></option>';         
          for(var i=0; i<arr.length; i++){  //遍历数组
            var item = arr[i];     //当前项
            //判断是否为当前城市下的区县
            if(item[2] == currCityId)
              areaStr += '<option value='+item[0]+'>'+item[1]+'</option>';
          }
          area.innerHTML = areaStr;  //填充新内容
        } 
      }
</script>

<body style="text-align:center;" onload="fillOptions('province');">
    <!-- 定义下拉菜单 -->
    省:<select id="province" onchange="fillOptions('city')"></select><br/><br/>
    市:<select id="city" onchange="fillOptions('area')"></select><br/><br/>
    县/区:<select id="area"></select><br/><br/>
</body>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Web前端设计模式  制作漂亮的弹出层
Oct 29 Javascript
JavaScript设计模式之适配器模式介绍
Dec 28 Javascript
JavaScript 匿名函数和闭包介绍
Apr 13 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 Javascript
详谈js中数组(array)和对象(object)的区别
Feb 27 Javascript
基于JQuery的Ajax方法使用详解
Aug 16 jQuery
js设置随机切换背景图片的简单实例
Nov 12 Javascript
ios设备中angularjs无法改变页面title的解决方法
Sep 13 Javascript
Node.js API详解之 tty功能与用法实例分析
Apr 27 Javascript
Vue组件生命周期运行原理解析
Nov 25 Vue.js
javascript特殊文本输入框网页特效
Sep 13 #Javascript
浅谈JS之iframe中的窗口
Sep 13 #Javascript
JS给swf传参数的实现方法
Sep 13 #Javascript
JS之相等操作符详解
Sep 13 #Javascript
jQuery使用getJSON方法获取json数据完整示例
Sep 13 #Javascript
jQuery异步提交表单的两种方式
Sep 13 #Javascript
浅谈JS之tagNaem和nodeName
Sep 13 #Javascript
You might like
VFP与其他应用程序的集成
2006/10/09 PHP
php代码中使用换行及(\n或\r\n和br)的应用
2013/02/02 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
laravel 解决强制跳转 https的问题
2019/10/22 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
某页码显示的helper 少量调整,另附js版
2010/09/12 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
基于replaceChild制作简单的吞噬特效
2015/09/21 Javascript
利用fecha进行JS日期处理
2016/11/21 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
Vue+mui实现图片的本地缓存示例代码
2018/05/24 Javascript
SVG实现时钟效果
2018/07/17 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
ant design的table组件实现全选功能以及自定义分页
2020/11/17 Javascript
JavaScript实现鼠标经过表格某行时此行变色
2020/11/20 Javascript
Python字典,函数,全局变量代码解析
2017/12/18 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
联想智利官方网站:Lenovo Chile
2020/06/03 全球购物
香港百佳网上超级市场:PARKNSHOP.com
2020/06/10 全球购物
我的理想演讲稿
2014/04/30 职场文书
社区平安建设方案
2014/05/25 职场文书
日语专业求职信
2014/07/04 职场文书
高中国旗下的演讲稿
2014/08/28 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
初中作文评语集锦
2014/12/25 职场文书
出纳岗位职责范本
2015/03/31 职场文书
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS