访问子页面时使父菜单项变粗

时间:2012-04-23 13:46:29

标签: javascript jquery

我有以下代码,它为菜单项提供了一个“当前”类。然后我使用font-weight:Bold;

设置样式
$(document).ready(function () {
    var loc = window.location.href;
    $("ul a").each(function() {
        if (loc.indexOf($(this).attr("href")) != -1) {
            $(this).addClass("current");
        }
    });
});

如果用户位于子菜单ul li a内的页面上,如何在根级别向父UL / LI添加名为Bold的类?

这是结构,如果我在Q& Z Group,那么关于我们需要大胆。 - http://jsfiddle.net/zZQy3/

3 个答案:

答案 0 :(得分:1)

如果您将当前节点作为jquery变量,则可以使用parent访问其父节点。因此,您可以使用$(this).parent().addClass(...);

如果你想,而不是使用javascript来实现这个逻辑,你可以使用selector

$('ul li:has(a[href=' + window.location.href + '])').addclass(...);

这是通过HasAttribute Equals选择器查找具有与当前网址匹配的href的后代的任何LI。

答案 1 :(得分:1)

var loc = window.location.href;
$("ul a").each(function() {
    if (loc.indexOf($(this).attr("href")) != -1) {
        $(this).addClass("current");
        $(this).parent('li').parent('ul').addClass("Bold");
    }
});

答案 2 :(得分:1)

您正在寻找parent

$(this).parent("li").parent("li").addClass("bold");

注意上面有两个父母 - 这是因为你的元素在li中,这不是你想要的粗体。你希望那个李的父母是大胆的。