JavaScript 三级联动嵌套列表是一种常见的交互式用户界面元素,它允许用户通过三个相互关联的下拉列表(或选择框)来选择数据。这种设计通常用于展示具有层级关系的数据,例如国家、省份和城市。
以下是一个简单的三级联动嵌套列表的实现示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>三级联动示例</title>
<script>
window.onload = function() {
var data = {
"中国": {
"北京": ["东城区", "西城区"],
"上海": ["浦东区", "徐汇区"]
},
"美国": {
"纽约州": ["纽约市", "布法罗"],
"加利福尼亚州": ["洛杉矶", "旧金山"]
}
};
var countrySelect = document.getElementById('country');
var stateSelect = document.getElementById('state');
var citySelect = document.getElementById('city');
// 初始化国家选项
for (var country in data) {
var option = document.createElement('option');
option.value = country;
option.text = country;
countrySelect.appendChild(option);
}
// 国家选择变化时更新省份
countrySelect.onchange = function() {
stateSelect.innerHTML = '<option value="">请选择省份</option>';
citySelect.innerHTML = '<option value="">请选择城市</option>';
var selectedCountry = this.value;
if (selectedCountry) {
for (var state in data[selectedCountry]) {
var option = document.createElement('option');
option.value = state;
option.text = state;
stateSelect.appendChild(option);
}
}
};
// 省份选择变化时更新城市
stateSelect.onchange = function() {
citySelect.innerHTML = '<option value="">请选择城市</option>';
var selectedCountry = countrySelect.value;
var selectedState = this.value;
if (selectedState) {
for (var city of data[selectedCountry][selectedState]) {
var option = document.createElement('option');
option.value = city;
option.text = city;
citySelect.appendChild(option);
}
}
};
};
</script>
</head>
<body>
<select id="country">
<option value="">请选择国家</option>
</select>
<select id="state">
<option value="">请选择省份</option>
</select>
<select id="city">
<option value="">请选择城市</option>
</select>
</body>
</html>
通过上述方法,可以有效实现并优化三级联动嵌套列表的功能。
没有搜到相关的文章