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 相关文章推荐
ejs v9 javascript模板系统
Mar 21 Javascript
JS代码同步文本框内容的实例方法
Jul 12 Javascript
js实现正方形颜色从下往上升的效果
Aug 04 Javascript
jQuery中on()方法用法实例详解
Feb 06 Javascript
AngularJS API之copy深拷贝详解及实例
Sep 14 Javascript
jquery把int类型转换成字符串类型的方法
Oct 07 Javascript
js判断手机号是否正确并返回的实现代码
Jan 17 Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 Javascript
字太多用...代替的方法(两种)
Mar 15 Javascript
Bootstrap Table中的多选框删除功能
Jul 15 Javascript
Vue中用props给data赋初始值遇到的问题解决
Nov 27 Javascript
Layui实现主窗口和Iframe层参数传递
Nov 14 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&amp;mysql(四)
2006/10/09 PHP
php Mysql日期和时间函数集合
2007/11/16 PHP
php array_slice函数的使用以及参数详解
2008/08/30 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
2015/03/17 PHP
调试php程序的简单步骤
2019/10/04 PHP
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
jquery自定义表格样式
2015/11/23 Javascript
JavaScript操作class和style样式代码详解
2016/02/13 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
浅谈vue中.vue文件解析流程
2018/04/24 Javascript
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
Python运算符重载详解及实例代码
2017/03/07 Python
Python最火、R极具潜力 2017机器学习调查报告
2017/12/11 Python
对python多线程SSH登录并发脚本详解
2019/02/14 Python
python print出共轭复数的方法详解
2019/06/25 Python
opencv3/C++ 平面对象识别&amp;透视变换方式
2019/12/11 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
浅谈在JupyterNotebook下导入自己的模块的问题
2020/04/16 Python
python 解决selenium 中的 .clear()方法失效问题
2020/09/01 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
图库照片、免版税图片、矢量艺术、视频片段:Depositphotos
2019/08/02 全球购物
写出SQL四条最基本的数据操作语句(DML)
2012/12/12 面试题
公司活动策划方案
2014/01/13 职场文书
小学毕业家长寄语
2014/01/19 职场文书
优秀教师主要事迹
2014/02/01 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
职工擅自离岗检讨书
2014/09/23 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
幼儿教师师德师风自我评价
2015/03/05 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle