本文介绍如何利用JavaScript DOM操作实现级联下拉列表。通过解析Select和Option对象的属性,如selectedIndex、length和options,结合Prototype库,动态生成并更新下拉选项。示例代码展示了从专业选择到具体研究方向的联动逻辑,适用于需要动态交互的Web表单场景。
HTML DOM基础与级联列表原理
HTML DOM指的是在W3C规范确立之前,各浏览器厂商所支持的一系列文档对象模型操作接口。
1. Select对象。
属性
a. selectedIndex:表示用户当前选中选项的下标,索引值从0开始计算。
b. length:用于获取或设置下拉列表中选项的总数。
c. options:返回一个包含所有Option对象的数组。
2. Option对象
属性:
a. text:显示在选项中的文本内容。
b. value:选项对应的实际值。
c. selected:布尔值,当该选项被选中时为true,否则为false。
小知识:如何创建一个Option对象
代码如下:
var op=new Option(text,value); 级联下拉列表完整代码示例
下面是一个我编写的级联下拉列表示例:
代码如下:
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<style>
#d1 {
width: 400px;
height: 250px;
background-color: #FFE4B5;
margin: 40px auto;
}
#d1_head {
color: white;
font-size: 20px;
font-family: "Arial";
height: 24px;
background-color: bule;
}
#d1_content {
padding-left: 30px;
padding-top: 30px;
}
</style>
<script src="prototype-1.6.0.3.js"></script>
<script type="text/javascript">
function doAction(index) {
var arr = new Array;
arr[0] = [ new Option('--研究方向--', '-1') ];
arr[1] = [ new Option('商务英语', 'english1'),
new Option('英美文学', 'english2') ];
arr[2] = [ new Option('网格计算', 'computer1'),
new Option('计算机软件', 'computer2'),
new Option('图形计算', 'computer3') ];
$('s2').innerHTML = '';
for (i = 0; i < arr[index].length; i++) {
$('s2').options[i] = arr[index][i];
}
}
</script>
</head>
<body style="font-size:30px;">
<div id="d1">
<div id="d1_head">专业选择</div>
<div id="d1_content">
<form>
<select naem="s1" id="s1" style="width:120px;"
onchange="doAction(this.selectedIndex);">
<option value="-1">--专业--</option>
<option value="english">--英语--</option>
<option value="computer">--计算机--</option>
</select> <select name="s2" id="s2" style="width:120px;">
<option value="-1">--研究方向--</option>
</select> <input type="submit" value="确认" />
</form>
</div>
</div>
</body>
</html>