首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js多级ul联动

基础概念: JS 多级 UL 联动是指通过 JavaScript 实现多个层级的无序列表(UL)之间的交互关联。当在一个层级的选项改变时,会相应地更新其他层级列表的选项。

优势

  1. 提供清晰直观的用户界面,方便用户进行分类选择。
  2. 增强用户体验,减少用户输入和选择的错误。

类型: 常见的有多级联动菜单、分类筛选等。

应用场景

  1. 电商平台的商品分类选择。
  2. 地区选择,如省、市、区的联动。
  3. 学校的学院、专业、课程的层级选择。

示例代码

代码语言:txt
复制
<!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>

在上述代码中,当点击第一级的选项时,根据不同的值显示或隐藏第二级列表,同理点击第二级列表的选项时控制第三级列表的显示与隐藏。

可能出现的问题及原因:

  1. 联动逻辑错误:可能是条件判断不正确或者数据值匹配有误。 解决方法:仔细检查条件判断语句和数据值的对应关系。
  2. 显示与隐藏异常:可能是样式设置错误或者 JavaScript 操作 DOM 的方法不正确。 解决方法:确认样式的设置和 JavaScript 对元素显示隐藏的操作代码。
  3. 数据更新不及时:可能是事件监听没有正确触发或者数据更新的操作有误。 解决方法:检查事件监听是否正确添加以及数据更新的逻辑。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券