原生js二级联动效果


Posted in Javascript onJune 20, 2017

今天说的这个是原生js的二级联动,在空白页面里动态添加并作出相对应的效果。

//创建两个下拉列表 select标签 是下拉列表
   var sel = document.createElement("select");
   var sel1 = document.createElement("select");
   //添加到body
   document.body.appendChild(sel);
   document.body.appendChild(sel1);
//   创建一个数组
   var firstSelectArr = ["未选择","医院","学校","公司","星座"];
   var detailFirstArr = ["未选择","院长","主任","大夫","护士"];
   var detailSecondArr = ["未选择","校长","老师","学生","主任"];
   var arr2 = ["未选择","CEO","职员","主任","下属"];
   var arr3 = ["未选择","白羊座","射手座","处女座","天秤座"];
   function addChild(arr,parentN){
    //封装函数
    for(var i=0;i<arr.length;i++){
    //创建 option节点
    var opt = document.createElement("option");
    //设置显示文字
    opt.innerText = arr[i];
    //把节点添加到sel中
    parentN.appendChild(opt);
    
   }
   }
   //调用函数 给第一个select添加option
   addChild(firstSelectArr,sel)
   
   //循环创建多个下拉选项
   
   //给第一个下拉列表添加onchange事件
   //onchange事件:当元素的值发生改变时,触发此事件。
   sel.onchange = function (){
//    selectdIndex.下拉列表的索引 
    console.log(sel.selectedIndex);
     switch (sel.selectedIndex){
      case 0:
      alert("未选择");
      break;
      case 1:
      delectOldOpt();
      addChild(detailFirstArr,sel1);
      break;
      case 2:
      delectOldOpt();
      addChild(detailSecondArr,sel1);
      break;
      case 3:
      delectOldOpt();
      addChild(arr2,sel1);
      break;
      case 4:
      delectOldOpt();
     addChild(arr3,sel1);
      break;
     }
     
     
    }
   //删除select原来的option
   function delectOldOpt(){
    //到这删除下拉列表中的选项
    for(var i=sel1.childNodes.length-1;i>=0;i--){
     //删除选项
     sel1.removeChild(sel1.childNodes[i]);
    }
    
   }

这样就完成了一个最简单的二级联动,希望可以帮到你们!

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

Javascript 相关文章推荐
JavaScript导出Excel实例详解
Nov 25 Javascript
Javascript实现div的toggle效果实例分析
Jun 09 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
论JavaScript模块化编程
Mar 07 Javascript
jQuery点击头像上传并预览图片
Feb 23 Javascript
微信小程序与php 实现微信支付的简单实例
Jun 23 Javascript
详解vue.js下引入百度地图jsApi的两种方法
Jul 27 Javascript
JS使用H5实现图片预览功能
Sep 30 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
原生JS实现萤火虫效果
Mar 07 Javascript
解决vue路由name同名,路由重复的问题
Aug 05 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 Javascript
angularjs下拉框空白的解决办法
Jun 20 #Javascript
JS使用ActiveXObject实现用户提交表单时屏蔽敏感词功能
Jun 20 #Javascript
20行js代码实现的贪吃蛇小游戏
Jun 20 #Javascript
详解vue-resource promise兼容性问题
Jun 20 #Javascript
ionic2自定义cordova插件开发以及使用(Android)
Jun 19 #Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
Jun 19 #Javascript
vue中如何实现变量和字符串拼接
Jun 19 #Javascript
You might like
php 各种应用乱码问题的解决方法
2010/05/09 PHP
推荐一款PHP+jQuery制作的列表分页的功能模块
2014/10/14 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
php文件上传 你真的掌握了吗
2016/11/28 PHP
thinkPHP中volist标签用法示例
2016/12/06 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
深入理解javascript作用域和闭包
2014/09/23 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
jquery图片放大镜效果
2017/06/23 jQuery
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python时间整形转标准格式的示例分享
2014/02/14 Python
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
python之mock模块基本使用方法详解
2019/06/27 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
python读取与处理netcdf数据方式
2020/02/14 Python
python实现mean-shift聚类算法
2020/06/10 Python
长青弘远的面试题
2012/06/09 面试题
辅导员评语
2014/05/04 职场文书
扬尘污染防治方案
2014/06/15 职场文书
教育实习指导教师评语
2014/12/31 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
芙蓉镇观后感
2015/06/10 职场文书
公司出差管理制度范本
2015/08/05 职场文书
MySQL窗口函数的具体使用
2021/11/17 MySQL
Java获取字符串编码格式实现思路
2022/09/23 Java/Android