原生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 相关文章推荐
使用JS进行目录上传(相当于批量上传)
Dec 05 Javascript
jQuery随便控制任意div隐藏的方法
Jun 28 Javascript
document.getElementById获取控件对象为空的解决方法
Nov 20 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
2014最热门的JavaScript代码高亮插件推荐
Nov 25 Javascript
js倒计时抢购实例
Dec 20 Javascript
jquery ztree实现模糊搜索功能
Feb 25 Javascript
jQuery复合事件用法示例
Jun 10 jQuery
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
vue使用keep-alive实现数据缓存不刷新
Oct 21 Javascript
vue.js系列中的vue-fontawesome使用
Feb 10 Javascript
手把手教您实现react异步加载高阶组件
Apr 07 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提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
2012/05/06 PHP
深入剖析浏览器退出之后php还会继续执行么
2016/05/17 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
复制本贴标题和地址的js代码
2008/07/01 Javascript
JavaScript经典效果集锦
2010/07/06 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
node.js基础知识小结
2018/02/26 Javascript
Vue 仿QQ左滑删除组件功能
2018/03/12 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
详解Python 调用C# dll库最简方法
2019/06/20 Python
django中瀑布流写法实例代码
2019/10/14 Python
Python如何实现线程间通信
2020/07/30 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
2020/10/12 Python
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
专升本自我鉴定
2013/10/10 职场文书
大专毕业自我鉴定
2014/02/04 职场文书
幼儿教师研修感言
2014/02/12 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
房产转让协议书
2014/04/11 职场文书
奥巴马连任演讲稿
2014/05/15 职场文书
2014年大学生社会实践自我鉴定
2014/09/26 职场文书
假释思想汇报范文
2014/10/11 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
2015年收银员个人工作总结
2015/04/01 职场文书
2016党员党章学习心得体会
2016/01/14 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
再见,2019我们不负使命;你好,2020我们砥砺前行
2020/01/03 职场文书
vue实现无缝轮播效果(跑马灯)
2021/05/14 Vue.js
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python