html - 如何选择最深层次的使用一个CSS类?

标签 html css

如何选择一个css类的最深用途?

在下面的列表中,我如何选择最深的使用类.active , 在这种情况下是 <li>包装 <span>Item 1.1.1.1</span>

<ul>
    <li class="active">
        <span>Item 1</span>
        <ul>
            <li class="active">
                <span>Item 1.1</span>
                <ul>
                    <li>
                        <span>Item 1.1.1</span>
                        <ul>
                            <li class="active"> // need selector for this <li>
                                <span>Item 1.1.1.1</span>
                                <ul>
                                    <li>
                                        <span>Item 1.1.1.1.1</span>
                                    </li>
                                    <li>
                                        <span>Item 1.1.1.1.2</span>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
            <li>
                <span>Item 1.2</span>
                <ul>
                    <li>
                        <span>Item 1.2.1</span>
                        <ul>
                            <li>
                                <span>Item 1.2.1.1</span>
                                <ul>
                                    <li>
                                        <span>Item 1.2.1.1.1</span>
                                    </li>
                                    <li>
                                        <span>Item 1.2.1.1.2</span>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
            </li>
        </ul>
    </li>
<ul>

最佳答案

您可以像下面这样使用 jQuery :not:has 选择器来选择最深的事件 li:

$('li.active:not(:has(.active))')

解释

jQuery( ":not(selector)"):选择所有与给定选择器不匹配的元素。

jQuery( ":has(selector)"):选择至少包含一个与指定选择器匹配的元素的元素。

结果显示:

$('li.active:not(:has(.active))').css("border", "1px solid red");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="active">
    <span>Item 1</span>
    <ul>
      <li class="active">
        <span>Item 1.1</span>
        <ul>
          <li>
            <span>Item 1.1.1</span>
            <ul>
              <li class="active">
                <span>Item 1.1.1.1</span>
                <ul>
                  <li>
                    <span>Item 1.1.1.1.1</span>
                  </li>
                  <li>
                    <span>Item 1.1.1.1.2</span>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
      <li>
        <span>Item 1.2</span>
        <ul>
          <li>
            <span>Item 1.2.1</span>
            <ul>
              <li>
                <span>Item 1.2.1.1</span>
                <ul>
                  <li>
                    <span>Item 1.2.1.1.1</span>
                  </li>
                  <li>
                    <span>Item 1.2.1.1.2</span>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
    </ul>
  </li>
  <ul>

关于html - 如何选择最深层次的使用一个CSS类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44493975/

相关文章:

javascript - 删除当前元素后重新定义可放置区域

css - 如何避免在 div 定位相对内绝对定位的两个 div 之间的重叠?

css - Bootstrap 4 工具提示和弹出框上的自定义样式(Arrow、Bg 等)

java - 从http服务器响应资源的正确方法

html - 如何在另一个 div 中居中固定导航栏?

html - 一线伪元素的独生子伪类

javascript - 如何引用 HTML anchor

javascript - HTML/CSS/Javascript 类似命令行的界面

html - CSS - 如何处理位置 :absolute elements when resizing with media queries

javascript - 调试用于生成图像的 javascript 代码