JS学习之实现简单的二级联动

一:多级联动在开发中使用的十分频繁,总结一下其主要步骤:

1、找到绑定onchange()的标签

1.1、创建一个合适的数组(开发过程中用数据库)存储需要的数据

2、以适当的方式传参

3、JS层要找到相应的标签,同时用层层包裹的形式给第二、三等等等标签赋值。

4、最后要进行清空处理

二:demo实现

html代码:

1             姓名--兴趣爱好     
2             <!-- //下面为第一级列表绑定onchange事件,同时传参此时用this.value方法 -->
3             <select onchange="Cname(this.value)">
4                 <option>--请下拉选择--</option>
5                 <option value="0">张三</option>
6                 <option value="1">李四</option>s
7             </select>
8             <select id="hobby">
9             </select>

JS代码:

 1             //定义一个二维数组用来存储第二级的列表信息
 2             var stus = new Array();
 3             stus[0] = new Array("唱", "跳", "rap");
 4             stus[1] = new Array("足球", "篮球", "羽毛球");
 5             //实现onchange事件
 6             function Cname(val) {
 7                 //找到第二级的列表id
 8                 var hobby = document.getElementById("hobby");
 9                 //每次调用onchange事件的时候要清空第二级的列表内容,否则会出现内容错乱
10                 hobby.options.length = 0;
11 
12                 for (var i = 0; i < stus.length; i++) {
13                     //将第一级的下标与数组第一级的下标进行对比
14                     if (val == i) {
15                         //找到对应下标后进行赋值操作
16                         for (var j = 0; j < stus[i].length; j++) {
17                             //创建一个文本节点,用来存储列表第二级的内容,实际开发应该是用数据库存储
18                             var textNode = document.createTextNode(stus[i][j]);
19                             //创建一个标签节点
20                             var opEle = document.createElement("option");
21                             //将标签节点包裹文本节点
22                             opEle.appendChild(textNode);
23                             //将第二级父节点包裹标签子节点
24                             hobby.appendChild(opEle);
25                         }
26                     }
27                 }
28             }
原文地址:https://www.cnblogs.com/zhang188660586/p/11175555.html