繁体   English   中英

当子LI具有“ item_active”时,将类“ item_active”添加到父LI

[英]Add class “item_active” to parent LI when a child LI has “item_active”

这应该很容易,但是以某种方式我还没有得到。 希望您能够帮助我。

简而言之:当子LI之一也具有该类时,我希望父LI可以添加一个“ item_active”类。

<ul class="nav navbar-nav">
  <li class=""><a href="main"><span>Main</span></a></li>
  <li class="dropdown"><a href="services" class="dropdown-toggle" data-toggle="dropdown"><span>Services</span></a>
    <ul class="dropdown-menu">
      <li><a href="first"><span>First</span></a></li>
      <li class="item_active"><a href="second"><span>Second</span></a></li>
      <li><a href="third"><span>Third</span></a></li>
    </ul>
  </li>
  <li><a href="about"><span>About</span></a></li>
  <li><a href="contact"><span>Contact</span></a></li>
</ul>

您会看到子下拉菜单中的第二个LI具有类“ item_active”。

在这种情况下,我希望jQuery在我的情况下将类“ item-active”添加到LI中,而类为“ dropdown”。

我尝试了许多不同的事情。 这可能是最接近的,但它什么也没做:

$('.navbar-nav li ul li').each(function(){
    if($(this).hasClass('item_active')) {
        $(this).closest('.dropdown').addClass('item_active');
    } 
});

在这里摆弄

我在SO中阅读了许多不同的答案,但没有一个解决了这个问题。

您提供的小提琴不使用jQuery。 加载它,它将起作用。

演示: https : //jsfiddle.net/dirtyd77/cxnx1147/6/

另外,请记住,引导程序会使用覆盖属性的特定类。 仅仅因为您看不到该类,并不意味着它尚未添加到元素中。

为了说明这一点,我使用了以下内容:

.item_active {
  background: yellow!important;
}

需要特别注意的是, !important并不是很好的做法。 希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM