1

我已经搜索过了,但似乎无法弄清楚如何做到这一点。我有一个包含子导航的菜单。我希望能够在选择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>
4

5 回答 5

0

当你设置selected类时$(this)你也可以这样做$(this).parent().addClass("selected")parent()可以一次又一次地调用来上树(li -> ul -> li 等)。

于 2013-08-15T16:43:39.857 回答
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)。

于 2013-08-15T16:56:43.003 回答
0

根据您的结构,您似乎希望将该类添加到您选择的曾祖父母:

$('.nav a').each(function (index) {
    if (this.href.trim() == window.location){
        $(this).addClass("selected");
        $(this).parentsUntil('a').addClass("selected");

    }
});
于 2013-08-15T17:02:12.710 回答
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
});
于 2013-08-15T17:04:03.173 回答
0

jQuery.parents()就是你要找的。

$('.active').parents('a').addClass('selected');

这得到了所有被选中班级的父母。

jQuery 文档: http ://api.jquery.com/parents/

注意: jQuery 有 2 个函数parent()parents()

于 2013-08-15T17:15:56.643 回答