今天说的这个是原生js的二级联动,在空白页面里动态添加并作出相对应的效果。
1 //创建两个下拉列表 select标签 是下拉列表
2 var sel = document.createElement("select");
3 var sel1 = document.createElement("select");
4 //添加到body
5 document.body.appendChild(sel);
6 document.body.appendChild(sel1);
7 // 创建一个数组
8 var firstSelectArr = ["未选择","医院","学校","公司","星座"];
9 var detailFirstArr = ["未选择","院长","主任","大夫","护士"];
10 var detailSecondArr = ["未选择","校长","老师","学生","主任"];
11 var arr2 = ["未选择","CEO","职员","主任","下属"];
12 var arr3 = ["未选择","白羊座","射手座","处女座","天秤座"];
13 function addChild(arr,parentN){
14 //封装函数
15 for(var i=0;i<arr.length;i++){
16 //创建 option节点
17 var opt = document.createElement("option");
18 //设置显示文字
19 opt.innerText = arr[i];
20 //把节点添加到sel中
21 parentN.appendChild(opt);
22
23 }
24 }
25 //调用函数 给第一个select添加option
26 addChild(firstSelectArr,sel)
27
28 //循环创建多个下拉选项
29
30 //给第一个下拉列表添加onchange事件
31 //onchange事件:当元素的值发生改变时,触发此事件。
32 sel.onchange = function (){
33 // selectdIndex.下拉列表的索引
34 console.log(sel.selectedIndex);
35 switch (sel.selectedIndex){
36 case 0:
37 alert("未选择");
38 break;
39 case 1:
40 delectOldOpt();
41 addChild(detailFirstArr,sel1);
42 break;
43 case 2:
44 delectOldOpt();
45 addChild(detailSecondArr,sel1);
46 break;
47 case 3:
48 delectOldOpt();
49 addChild(arr2,sel1);
50 break;
51 case 4:
52 delectOldOpt();
53 addChild(arr3,sel1);
54 break;
55 }
56
57
58 }
59 //删除select原来的option
60 function delectOldOpt(){
61 //到这删除下拉列表中的选项
62 for(var i=sel1.childNodes.length-1;i>=0;i--){
63 //删除选项
64 sel1.removeChild(sel1.childNodes[i]);
65 }
66
67 }
68
这样就完成了一个最简单的二级联动,希望可以帮到你们!!!!