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 }