如果
  • 标记有任何活动类,请将活动类添加到最接近的
  • 

    这是我的代码。

    <div class="support-menu hidden-xs">
    <nav class="vertical">
        <ul>
            <li>
                <a href="#" class="active">Basic SQL</a>
                <div>
                    <ul>
                        <li><a class="Database_Basic" target="_self" href="~/Database/Basic">Overview</a></li>
                        <li><a class="Database_SQLSyntax" target="_self" href="~/Database/SQLSyntax">SQL Syntax</a></li>
                        <li><a class="Database_Select" target="_self" href="~/Database/Select">SELECT</a></li>
                    </ul>
                </div>
                <a href="#" class="">SQL Function</a>
                <div>
                    <ul>
                        <li><a class="Database_AVG" target="_self" href="~/Database/AVG">AVG</a></li>
                        <li><a class="Database_COUNT" target="_self" href="~/Database/COUNT">COUNT</a></li>
                        <li><a class="Database_MIN" target="_self" href="~/Database/MIN">MIN</a></li>
                    </ul>
                </div>
            </li>
        </ul>
    </nav>
    

    这是基于 URL 在 li 标签上添加活动的脚本。

    <script>
     var index = window.location.pathname.split('/')[1] + '_' + 
    window.location.pathname.split('/')[2];
    $('ul.li.a').removeClass('active');
    $('a.' + index).addClass('active');
     </script>
    

    所以我想要的是当 li 标签具有活动类时,还要在父 a(锚)标签上添加活动类

    我还没有测试过你的代码,正如你所说,这比在你的脚本标签中添加下面的代码工作正常。

    $('a.' + index).closest('div').siblings().removeClass('active');
    $('a.' + index).closest('div').prev('a').addClass('active');
    
    如果要跳过重复这些选择器

    ,请将这些选择器分配给变量。

    下面的jQuery行应该可以做到这一点:

    $('a.' + index).closest('div').prev().addClass('active');
    

    使用 closest() 它搜索所有带有标签名称 DIV 的父元素,并选择离您最近的 A 元素。使用 .prev() 选择DIV上方的元素,在本例中为A元素。

    最新更新