在JavaScript中实现地区选择功能,通常涉及到数据结构设计、DOM操作以及事件处理等方面。以下是一个基础的实现思路和示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>地区选择示例</title>
</head>
<body>
<select id="province"></select>
<select id="city" disabled></select>
<select id="district" disabled></select>
<script>
const regions = {
"广东省": {
"广州市": ["天河区", "越秀区"],
"深圳市": ["南山区", "福田区"]
},
"湖南省": {
"长沙市": ["岳麓区", "芙蓉区"],
"株洲市": ["天元区", "荷塘区"]
}
};
const provinceSelect = document.getElementById('province');
const citySelect = document.getElementById('city');
const districtSelect = document.getElementById('district');
// 初始化省份选项
for (let province in regions) {
let option = document.createElement('option');
option.value = province;
option.textContent = province;
provinceSelect.appendChild(option);
}
// 省份选择事件
provinceSelect.addEventListener('change', function() {
let province = this.value;
citySelect.innerHTML = '';
districtSelect.innerHTML = '';
districtSelect.disabled = true;
if (province) {
for (let city in regions[province]) {
let option = document.createElement('option');
option.value = city;
option.textContent = city;
citySelect.appendChild(option);
}
citySelect.disabled = false;
} else {
citySelect.disabled = true;
districtSelect.disabled = true;
}
});
// 城市选择事件
citySelect.addEventListener('change', function() {
let province = provinceSelect.value;
let city = this.value;
districtSelect.innerHTML = '';
if (city) {
regions[province][city].forEach(district => {
let option = document.createElement('option');
option.value = district;
option.textContent = district;
districtSelect.appendChild(option);
});
districtSelect.disabled = false;
} else {
districtSelect.disabled = true;
}
});
</script>
</body>
</html>
以上示例代码展示了一个基础的静态地区选择功能,你可以根据实际需求进行扩展和优化。