html行业职位联动下拉菜单,联动下拉菜单

这篇博客详细介绍了如何使用JavaScript实现一个多级联动下拉菜单的功能,通过`window.onload`初始化并添加选项,以及在`onchange`事件中动态更新下拉菜单的内容。文章深入探讨了数据结构的设计和动态加载的逻辑,对于前端开发者理解动态交互控件的实现有很好的参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联动下拉菜单

window.onload = function(){

var s1 = new Sel('div1');

s1.add('0',['1','2','3']);

s1.add('0_0',['1_1','1_2','1_3']);

s1.add('0_0_0',['1_1_1','1_1_2','1_1_3']);

s1.add('0_0_1',['1_2_1','1_2_2','1_2_3']);

s1.add('0_0_2',['1_3_1','1_3_2','1_3_3']);

s1.add('0_1',['2_1','2_2','2_3']);

s1.add('0_1_0',['2_1_1','2_1_2','2_1_3']);

s1.add('0_1_1',['2_2_1','2_2_2','2_2_3']);

s1.add('0_1_2',['2_3_1','2_3_2','2_3_3']);

s1.add('0_2',['3_1','3_2','3_3']);

s1.add('0_2_0',['3_1_1','3_1_2','3_1_3']);

s1.add('0_2_1',['3_2_1','3_2_2','3_2_3']);

s1.add('0_2_2',['3_3_1','3_3_2','3_3_3']);

s1.init(3);

};

function Sel(id){

this.oParent = document.getElementById(id);

this.data = {};

this.aSel = this.oParent.getElementsByTagName('select');

}

Sel.prototype = {

init : function(num){

var This = this;

for(var i = 1;i <= num; i++){

var oSel = document.createElement('select');

var oPt = document.createElement('option');

oPt.innerHTML = '默认';

oSel.index = i;

oSel.appendChild(oPt);

this.oParent.appendChild(oSel);

oSel.onchange = function(){

This.change(this.index);

}

}

this.first();

},

add : function(key,value){

this.data[key] = value;

},

first : function(){

var arr = this.data['0'];

for(var i = 0;i

var oPt = document.createElement('option');

oPt.innerHTML = arr[i];

this.aSel[0].appendChild(oPt);

}

},

change : function(iNow){

var str = '0';

for(var i = 0;i

str += '_' + ( this.aSel[i].selectedIndex - 1 );  //selectIndex是获取select(下拉菜单)选择的索引值

}

if(this.data[str]){

var arr = this.data[str];

this.aSel[iNow].length = 1;

for(var i = 0; i

var oPt = document.createElement('option');

oPt.innerHTML = arr[i];

this.aSel[iNow].appendChild(oPt);

}

this.aSel[iNow].options[1].selected = true;

iNow++;

if(iNow

this.change(iNow);

}

}

else{

if(iNow

this.aSel[iNow].length = 1;

}

iNow++;

if(iNow

this.change(iNow);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值