基础概念: JS 多级 UL 联动是指通过 JavaScript 实现多个层级的无序列表(UL)之间的交互关联。当在一个层级的选项改变时,会相应地更新其他层级列表的选项。
优势:
类型: 常见的有多级联动菜单、分类筛选等。
应用场景:
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JS 多级 UL 联动示例</title>
</head>
<body>
<ul id="level1">
<li data-value="1">选项 1</li>
<li data-value="2">选项 2</li>
</ul>
<ul id="level2" style="display: none;">
<li data-value="1-1">选项 1-1</li>
<li data-value="1-2">选项 1-2</li>
</ul>
<ul id="level3" style="display: none;">
<li data-value="1-1-1">选项 1-1-1</li>
<li data-value="1-1-2">选项 1-1-2</li>
</ul>
<script>
const level1 = document.getElementById('level1');
const level2 = document.getElementById('level2');
const level3 = document.getElementById('level3');
level1.addEventListener('click', function (event) {
if (event.target.tagName === 'LI') {
const value = event.target.getAttribute('data-value');
if (value === '1') {
level2.style.display = 'block';
level3.style.display = 'none';
} else {
level2.style.display = 'none';
level3.style.display = 'none';
}
}
});
level2.addEventListener('click', function (event) {
if (event.target.tagName === 'LI') {
const value = event.target.getAttribute('data-value');
if (value === '1-1') {
level3.style.display = 'block';
} else {
level3.style.display = 'none';
}
}
});
</script>
</body>
</html>
在上述代码中,当点击第一级的选项时,根据不同的值显示或隐藏第二级列表,同理点击第二级列表的选项时控制第三级列表的显示与隐藏。
可能出现的问题及原因:
领取专属 10元无门槛券
手把手带您无忧上云