【发布时间】:2015-03-17 16:04:51
【问题描述】:
目前,在 bootstrap3 nav 下拉菜单等中。
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Dropdown <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">Here's My Fancy St. Patties Day link!</a></li>
<li><a href="#">Another link</a></li>
<li><a href="#">Something else entirely here</a></li>
<li class="divider"></li>
<li><a href="#">Separated link</a></li>
</ul>
</li>
</ul>
我通过 .active css 突出显示导航菜单项,并使用简单的 jquery addClass 到父元素:
$('a[href="' + this.location.pathname + '"]').parent().addClass('active');
然后当一个在所述页面上时,这会突出显示相应的菜单项。
我的问题是,我如何也将类添加到容器''(li > ul > li 等)?我一直在堆叠 .parent() 标签试图找到它,但运气不好。
编辑:
我认为这样的事情会将活动类添加到容器中 li class='dropdown':
$('a[href="' + this.location.pathname + '"]').parent().addClass('active');
$('li a[href="' + this.location.pathname + '"]').parent().eq(1).addClass('active');
.. 使用 .parent().eq(),但还是没用!
【问题讨论】:
-
您要在哪个元素上添加活动?在
a或li? -
.parentsUntil()应该可以帮助您,如果您只是将.active添加到所有元素,无论如何 -
与其链接多个
.parent()方法,不如使用.closest()-api.jquery.com/closest$('a[href="' + this.location.pathname + '"]').closest('.dropdown').addClass('active');方法 -
在那个容器
- 上,包含 href 的那个......谢谢!
标签: javascript jquery html css twitter-bootstrap