这是我的代码。
<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元素。