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 相关文章推荐
JS在IE和FireFox之间常用函数的区别小结
Mar 12 Javascript
input 输入框内的输入事件详细分析
Mar 17 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
Oct 22 Javascript
jQuery制作图片旋转效果
Feb 02 Javascript
JavaScript实现简单的星星评分效果
May 18 Javascript
javascript中UMD规范的代码推演
Aug 29 Javascript
详解Vue用cmd创建项目
Feb 12 Javascript
微信小程序分享功能onShareAppMessage(options)用法分析
Apr 24 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 Javascript
vue插槽slot的简单理解与用法实例分析
Mar 14 Javascript
javascript实现一款好看的秒表计时器
Sep 05 Javascript
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
迅速确定php多维数组的深度的方法
2014/01/07 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
轮播的简单实现方法
2016/07/28 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
socket.io学习教程之基础介绍(一)
2017/04/29 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
vue实现密码显示与隐藏按钮的自定义组件功能
2019/04/23 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
2019/05/24 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
python模块之re正则表达式详解
2017/02/03 Python
python 实现数字字符串左侧补零的方法
2018/12/04 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
python中shell执行知识点
2020/05/06 Python
浅谈Keras中shuffle和validation_split的顺序
2020/06/19 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
终止劳动合同协议书
2014/04/14 职场文书
2015年试用期工作总结
2014/12/12 职场文书
2015年幼儿园后勤工作总结
2015/04/25 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
承诺书的内容有哪些,怎么写?
2019/06/21 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
《攀登者》:“海拔8000米以上,你不能指望任何人”
2019/11/25 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang
Django使用echarts进行可视化展示的实践
2021/06/10 Python