我已经搜遍过,但似乎无法想象如何做到这一点。我有一个子导航的菜单。我希望能够在选择子li
时突出显示父li
。我已经想出了如何选择孩子,而不是父母。请帮忙。
的Javascript
$('.nav a').each(function (index) {
if (this.href.trim() == window.location) {
$(this).addClass("selected");
}
});
HTML
<ul class="nav">
<li><a id="A2" href="~/" runat="server">HOME</a></li>
<li><a href="/about.aspx">ABOUT US</a></li>
<li class="dropdown"><a href="#contact" role="button" class="dropdown-toggle" data-toggle="dropdown">PRODUCTS</a>
<ul class="dropdown-menu" role="menu">
<li><a href="/products-access-control.aspx">Product 1</a></li>
<li><a href="/products-time-attendance.aspx">Product 2</a></li>
<li><a href="/products-service.aspx">Product 3</a></li>
<li><a href="/partner-solutions.aspx">Product 4</a></li>
</ul>
</li>
<li><a href="#" ID="newslink1" runat="server">NEWS</a></li>
<li><a href="/contact.aspx">CONTACT US</a></li>
</ul>
答案 0 :(得分:0)
在selected
上设置$(this)
课程时,您也可以执行$(this).parent().addClass("selected")
。可以一次又一次地调用parent()
来上升树(li - &gt; ul - &gt; li等)。
答案 1 :(得分:0)
在jQuery
:
也是为了让孩子们:
在您的示例中,请检查:
$('.nav a').each(function (index) {
if (this.href.trim() == window.location) {
var classSelected = 'selected';
$(this).addClass(classSelected).closest('.dropdown').addClass(classSelected);
}
});
最好使用链接可能性($(...).foo().bar().too())
并将字符串值作为变量以便进一步重用(如classSelected
)。
答案 2 :(得分:0)
根据您的结构,您似乎想要将该类添加到您选择的曾祖父母中:
$('.nav a').each(function (index) {
if (this.href.trim() == window.location){
$(this).addClass("selected");
$(this).parentsUntil('a').addClass("selected");
}
});
答案 3 :(得分:0)
$('.nav a').each(function (index) {
if (this.href.trim() == window.location)
$(this).addClass("selected");
$(this).parent().addClass("selected"); //this will add selected class to
//li containing the anchor tag
});
答案 4 :(得分:0)
jQuery.parents()
就是你要找的。 p>
$('.active').parents('a').addClass('selected');
这会让所有被选中的父母都被选中。
jQuery文档: http://api.jquery.com/parents/
注意: jQuery有2个函数parent()
和parents()