原生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 相关文章推荐
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
js获取当前路径的简单示例代码
Jan 08 Javascript
jquery中$each()方法的使用指南
Apr 30 Javascript
jquery UI Datepicker时间控件的使用方法(基础版)
Nov 07 Javascript
JavaScript的代码编写格式规范指南
Dec 07 Javascript
JavaScript学习笔记之数组去重
Mar 23 Javascript
相册展示PhotoSwipe.js插件实现
Aug 25 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
Dec 19 Javascript
Angular中的$watch方法详解
Sep 18 Javascript
使用RxJS更优雅地进行定时请求详析
Jun 02 Javascript
详解如何在Javascript和Sass之间共享变量
Nov 13 Javascript
微信小程序如何加载数据库真实数据的实现
Mar 04 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计算两个日期相差天数的方法
2015/03/14 PHP
PHP的自定义模板引擎
2017/03/24 PHP
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
基于jquery封装的一个js分页
2011/11/15 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
干货分享:让你分分钟学会javascript闭包
2015/12/25 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
2017/03/17 Javascript
AngularJS2中一种button切换效果的实现方法(二)
2017/03/27 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
js实现方块上下左右移动效果
2017/08/17 Javascript
Vue源码解析之Template转化为AST的实现方法
2018/12/14 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
实例Python处理XML文件的方法
2015/08/31 Python
python pexpect ssh 远程登录服务器的方法
2019/02/14 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
5个你不知道的HTML5的接口介绍
2013/08/07 HTML / CSS
HTML5 Canvas中绘制椭圆的4种方法
2015/04/24 HTML / CSS
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
《骆驼和羊》教学反思
2014/02/27 职场文书
经济信息系毕业生自荐信
2014/06/02 职场文书
煤矿安全协议书
2014/08/20 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书