jquery - 如何在内部节点数未知的多重递归结构中选择最后一层 li?

标签 jquery html css css-selectors

我需要选择片段所示结构中的最后一级子元素。 如果我们可以使用 css 实现这一点,那就太好了,但如果不可能,jquery 也可以。

注意:我无法更改 HTML 结构或在其中添加类。

ul li:last-child {
        color: #ff0000;
    }

    li {
        color: #000000;
    }
<ul class="root">
   <li>no</li>
   <li>no</li>
   <li>yes</li>
</ul>
<ul class="root">
   <li>no</li>
   <li>no</li>
   <li>
      <ul>
         <li>no</li>
         <li>
            yes
            <ul>
               <li>no</li>
               <li>
                  yes
                  <ul>
                     <li>no</li>
                     <li>
                        yes
                        <ul>
                           <li>no</li>
                           <li>
                              yes
                              <ul>
                                 <li>no</li>
                                 <li>The last one, Only this need to be red!</li>
                              </ul>
                           </li>
                        </ul>
                     </li>
                  </ul>
               </li>
            </ul>
         </li>
      </ul>
   </li>
</ul>

最佳答案

:has() 之前您将需要使用 JS支持。

这是获得最深度的一种方法 <li>并向其添加一个类:

var items = document.querySelectorAll("li");

items[items.length - 1].classList.add("last");
.last {
  color: red;
}
<ul class="root">
   <li>no</li>
   <li>no</li>
   <li>yes</li>
</ul>
<ul class="root">
   <li>no</li>
   <li>no</li>
   <li>
      <ul>
         <li>no</li>
         <li>
            yes
            <ul>
               <li>no</li>
               <li>
                  yes
                  <ul>
                     <li>no</li>
                     <li>
                        yes
                        <ul>
                           <li>no</li>
                           <li>
                              yes
                              <ul>
                                 <li>no</li>
                                 <li>The last one, Only this need to be red!</li>
                              </ul>
                           </li>
                        </ul>
                     </li>
                  </ul>
               </li>
            </ul>
         </li>
      </ul>
   </li>
</ul>

关于jquery - 如何在内部节点数未知的多重递归结构中选择最后一层 li?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55600030/

相关文章:

html - 上标改变行高

php - 打印 HTML 设计内容的最佳方式?

javascript - 图像 slider 按钮未检测到单击?

javascript - 无法让 jQuery 在本地工作

javascript - 为什么对表格进行排序后单击事件处理程序不起作用

javascript - ElevateZoom 默认缩放级别

html - 播放声音的最有效方法(一页中有许多播放按钮)

angularjs - 列出未与 ng-repeat 正确对齐的元素

由于 css 的溢出属性,jquery 拖放无法正常工作

javascript - 如何提取列表的第一个元素并用它来替换jquery中的列表?