原生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 new 需不需要继续使用
Jul 02 Javascript
juqery 学习之三 选择器 可见性 元素属性
Nov 25 Javascript
使用jquery读取html5 localstorage的值的方法
Jan 04 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
Sep 02 Javascript
php+ajax+jquery实现点击加载更多内容
May 03 Javascript
Javascript中With语句用法实例
May 14 Javascript
Jquery使用小技巧汇总
Dec 29 Javascript
封装属于自己的JS组件
Jan 27 Javascript
Vue 实现展开折叠效果的示例代码
Aug 27 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
vuex state中的数组变化监听实例
Nov 06 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
Jul 19 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
zf框架的session会话周期及次数限制使用示例
2014/03/13 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
Three.js快速入门教程
2016/09/09 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
[01:45]典藏宝瓶2+祈求者身心——这就是DOTA2TI9总奖金突破3000万美元的秘密
2019/07/21 DOTA
Python中使用logging模块打印log日志详解
2015/04/05 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Python中逗号的三种作用实例分析
2015/06/08 Python
python中redis的安装和使用
2016/12/04 Python
Python定时器实例代码
2017/11/01 Python
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
Python下简易的单例模式详解
2019/04/08 Python
python内存管理机制原理详解
2019/08/12 Python
python基础教程之while循环
2019/08/14 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
移动端Html5中百度地图的点击事件
2019/01/31 HTML / CSS
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
怎样自定义一个异常类
2016/09/27 面试题
会计专业毕业生自我评价
2013/09/25 职场文书
军训鉴定表自我鉴定
2014/02/13 职场文书
班长演讲稿范文
2014/04/24 职场文书
化学教育专业自荐信
2014/07/04 职场文书
学校食堂食品安全责任书
2014/07/28 职场文书
班主任高考寄语
2015/02/26 职场文书
MySQL系列之十四 MySQL的高可用实现
2021/07/02 MySQL
openstack中的rpc远程调用的方法
2021/07/09 Python
vue+iview实现手机号分段输入框
2022/03/25 Vue.js