级联下拉列表是一种常见的用户界面元素,它允许用户根据前一个选择动态地填充后续的下拉列表选项。使用原生JavaScript实现级联下拉列表涉及以下几个基础概念:
以下是一个简单的示例,展示了如何使用原生JavaScript实现两个级联的下拉列表:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>级联下拉列表</title>
</head>
<body>
<select id="category" onchange="loadSubCategories()">
<option value="">请选择分类</option>
<!-- 分类选项将通过JavaScript动态添加 -->
</select>
<select id="subcategory">
<option value="">请选择子分类</option>
<!-- 子分类选项将通过JavaScript动态添加 -->
</select>
<script>
// 假设这是从服务器获取的分类数据
const categories = [
{ id: 1, name: '电子产品', subcategories: [ { id: 101, name: '手机' }, { id: 102, name: '电脑' } ] },
{ id: 2, name: '服装', subcategories: [ { id: 201, name: '男装' }, { id: 202, name: '女装' } ] }
];
// 初始化分类下拉列表
const categorySelect = document.getElementById('category');
categories.forEach(category => {
const option = document.createElement('option');
option.value = category.id;
option.textContent = category.name;
categorySelect.appendChild(option);
});
function loadSubCategories() {
const categoryId = categorySelect.value;
const subcategorySelect = document.getElementById('subcategory');
subcategorySelect.innerHTML = '<option value="">请选择子分类</option>'; // 清空子分类选项
if (categoryId) {
const category = categories.find(c => c.id == categoryId);
category.subcategories.forEach(subcategory => {
const option = document.createElement('option');
option.value = subcategory.id;
option.textContent = subcategory.name;
subcategorySelect.appendChild(option);
});
}
}
</script>
</body>
</html>
通过以上步骤和示例代码,你可以实现一个基本的级联下拉列表。在实际应用中,可能需要根据具体需求进行调整和优化。
领取专属 10元无门槛券
手把手带您无忧上云