Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将活动类添加到所选li的父级?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 如何将活动类添加到所选li的父级?

Javascript 如何将活动类添加到所选li的父级?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是我正在使用的js $(function() { var pgurl = window.location.href.substr(window.location.href .lastIndexOf("/") + 1); $("#nav ul ul li a").each(function() { if ($(this).attr("href") == pgurl || $(this).attr("href") == '')

这是我正在使用的js

$(function() {
    var pgurl = window.location.href.substr(window.location.href
            .lastIndexOf("/") + 1);
    $("#nav ul ul li a").each(function() {
        if ($(this).attr("href") == pgurl || $(this).attr("href") == '')
            $(this).closest('li').addClass('active');
    });

});


  • 您是否尝试过使用儿童的方法?愿它对你有用

    我将更改您的代码:

    <div id="nav">
        <ul>
            <li class="headerFont"><a href="index.jsp"><b>HOME</b></a></li>
            <li class="headerFont"><a href="link.jsp"><b>HOW TO
                        DONATE</b></a></li>
            <li class="headerFont"><a href="#"><b>DONATE</b></a>         <----- AND THIS SINCE SHOULD
                <ul>                                                            ALSO BE ACTIVE
                    <li class="headerFont"><a href="link2.jsp"><b>DONATION    <----- IF I SELECT THIS
                                CENTER <img id="arrow" src="img/arrow.png" />     IT SHOULD BE ACTIVE
                        </b></a></li>
                    <li class="headerFont"><a href="link3.jsp"><b>HOW ELSE
                                CAN I DONATE? <img id="arrow" src="img/arrow.png" />
                        </b></a></li>
                </ul>
           </li>
        </ul>
    </div>
    

    对于您可以想象的几乎每个嵌套元素的交互,都有一个Jquery方法

    在你的情况下,最合适的是

    正如名称所述,它将选择每个父级,直到满足选择器条件。作为可选的第二个参数,可以过滤结果,将选择范围缩小到所需的图元类型

    所以,你会有这样的想法:

    $("#nav ul ul").children("li").each(function() {
        if ($(this).find("a").attr("href") == pgurl || $(this).find("a").attr("href") == '')
            $(this).addClass('active');
    });
    
    这将针对每一位家长
    li
    ,直到它达到最高的
    ul

    尝试:

    $(“#nav”)。在(“单击”,“li”,函数()上){ $(this.addClass('active'); });


    这会将活动类添加到单击的
    li
    中,并将
    li
    父类添加到父类中。

    要使父类
    li
    都处于活动状态,还是仅使其处于最顶端?请使用
    $(this.closest('li')。addClass('active')。parents('li')。addClass('active')。addClass('active')
    ,它将查找所有祖先
    li
    元素,并为其指定类
    active
    。可能会有帮助。@LcSalazar两者都会better@ckuijjer谢谢我试试看!我试过了。仍然是一样的,仍然只有子级获得活动类。。。你能给我一些样品吗?
    $(this).parentsUntil("#nav > ul", "li").addClass("active");