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 相关文章推荐
Some tips of wmi scripting in jscript (1)
Apr 03 Javascript
javascript之ESC(第二类混淆)
May 06 Javascript
javascript创建createXmlHttpRequest对象示例代码
Feb 10 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
Jun 23 Javascript
分享我的jquery实现下拉菜单心的
Nov 29 Javascript
jquery ajax局部加载方法详解(实现代码)
May 12 Javascript
微信支付 JS API支付接口详解
Jul 11 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
Aug 23 Javascript
jQuery实现的放大镜效果示例
Sep 13 Javascript
vue路由跳转时判断用户是否登录功能的实现
Oct 26 Javascript
JS 获取文件后缀,判断文件类型(比如是否为图片格式)
May 09 Javascript
关于Javascript闭包与应用的详解
Apr 22 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读取数据库信息的几种方法
2008/05/24 PHP
PHP排序算法类实例
2015/06/17 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
判断多个input type=file是否有已经选择好文件的代码
2012/05/23 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
javascript自启动函数的问题探讨
2013/10/05 Javascript
js抽奖实现随机抽奖代码效果
2013/12/02 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
JavaScript实现清空(重置)文件类型INPUT元素值的方法
2016/11/17 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
Vue点击切换颜色的方法
2018/09/13 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
vue 解决无法对未定义的值,空值或基元值设置反应属性报错问题
2020/07/31 Javascript
在nodejs中创建child process的方法
2021/01/26 NodeJs
[44:50]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 TNC vs VG
2018/04/02 DOTA
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
用python脚本24小时刷浏览器的访问量方法
2018/12/07 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Python如何telnet到网络设备
2021/02/18 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
在HTML5中如何使用CSS建立不可选的文字
2014/10/17 HTML / CSS
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
生物制药毕业生自荐信
2013/10/16 职场文书
《小猪家的桃花树》教学反思
2014/04/11 职场文书
售后服务承诺书模板
2014/05/21 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
模范班主任事迹材料
2014/12/17 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers