基础概念: 二级联动菜单通常指的是两个下拉菜单之间存在依赖关系,当第一个菜单的选项改变时,第二个菜单的选项也会相应地更新。高亮则是指在用户与菜单交互时,通过改变菜单项的样式来突出显示当前选中的项。
优势:
类型:
应用场景:
常见问题及原因:
解决方案:
change事件正确触发,并在该事件的处理函数中更新第二个菜单的内容。示例代码: HTML部分:
<select id="firstMenu">
<option value="">请选择</option>
<option value="option1">选项1</option>
<option value="option2">选项2</option>
</select>
<select id="secondMenu">
<option value="">请选择</option>
</select>JavaScript部分:
document.getElementById('firstMenu').addEventListener('change', function() {
var selectedValue = this.value;
var secondMenu = document.getElementById('secondMenu');
secondMenu.innerHTML = '<option value="">请选择</option>'; // 清空第二个菜单
if(selectedValue === 'option1') {
secondMenu.innerHTML += '<option value="subOption1">子选项1</option><option value="subOption2">子选项2</option>';
} else if(selectedValue === 'option2') {
secondMenu.innerHTML += '<option value="subOption3">子选项3</option><option value="subOption4">子选项4</option>';
}
});
// 高亮显示当前选中的菜单项
document.querySelectorAll('select').forEach(function(menu) {
menu.addEventListener('change', function() {
// 移除所有选项的高亮
this.querySelectorAll('option').forEach(function(option) {
option.classList.remove('highlight');
});
// 为当前选中的选项添加高亮
this.querySelector('option:checked').classList.add('highlight');
});
});CSS部分:
.highlight {
background-color: yellow;
}确保在实际应用中,数据请求和DOM操作都在合适的生命周期内执行,以避免潜在的性能问题或逻辑错误。