将类添加到Child元素的父元素是活动的

时间:2013-08-15 16:25:31

标签: jquery css

我已经搜遍过,但似乎无法想象如何做到这一点。我有一个子导航的菜单。我希望能够在选择子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>

5 个答案:

答案 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()就是你要找的。

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

这会让所有被选中的父母都被选中。

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

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