jquery - 仅将 'active' 类分配给最深的子级

标签 jquery css twitter-bootstrap

我有一个基于 Bootstrap 的 < UL > 导航树,其中当前页面路径中的每个 < LI > 都被赋予“事件”类。因此,如果我在主页以下两层的页面上,代码大致如下:

<ul>
  <li>Link1</li>
  <li>Link2</li>
  <li class='active'>Link3
    <ul>
      <li>sublink1</li>
      <li class=active>sublink2
        <ul>
          <li>subsublink1</li>
          <li class=active>subsublink2 THIS IS MY PAGE</li>
        </ul>
      </li>
    </ul>
  </li>

问题在于 bootstrap 为所有 li.active 元素添加了边框。我只希望边框应用于最深的边框,即我实际所在的页面。

我不会弄乱 Bootstrap 的基础,因此我不会从整个路径中删除事件类。

我的目标是让 jQuery 删除不需要的边框。我想找到任何没有 li.active 子代的 li.active,这表明它是路径中最深的 li.active。然后找到所有具有 li.active 的父级并删除它们的边框。

我如何构建该 JQUERY?

我在想这样的事情(知道 notHasClass 不存在):

$('li.active').children().notHasClass('active').parents.hasClass('active').css('border','none');

最佳答案

查找所有包含另一个 .active 元素的 li.active 元素并删除边框:

$('li.active:has(.active)').css({ border : 'none' });

http://jsfiddle.net/X8K4E/

关于jquery - 仅将 'active' 类分配给最深的子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17829662/

相关文章:

css:如何将内容的最后一行/行左对齐

html - Bootstrap 表每行有两个不同长度的水平列

javascript - 如何将所选元素的标签添加到 jquery 自动完成?

Jquery 点击事件未触发/区分两个相同的 HTML block

javascript - jQuery 事件 currentTarget 数据集

javascript - 无法自动点击/触发 iframe 的按钮

javascript - 在表体上应用滚动事件

javascript - 使用 jQuery click() 打开 Facebook 共享对话框

html - 如何让div填充浏览器窗口的宽度和高度而不拉伸(stretch)图像

css - 在响应式设计中如何将多个子元素锚定到父元素的底部?