如果类与当前网址匹配,则将其添加到当前链接?

时间:2019-04-02 05:39:58

标签: jquery css url

我正在使用此脚本突出显示当前链接(添加活动类):

<script type="text/javascript">
jQuery(document).ready(function( $ ) {
$(function() {
  $('nav a[href^="/' + location.pathname.split("/")[1] + '"]').addClass('active');
});
});
</script>



<li><a href="/category/english/this/?s=<?php
echo '' . htmlspecialchars($_GET["s"]) . '';
?>/">this</a></li>

<li><a href="/category/english/that/?s=<?php
echo '' . htmlspecialchars($_GET["s"]) . '';
?>/">that</a></li>

这首先匹配/,例如/category,然后突出显示菜单中的所有内容或以/category/...开头的任何链接。我希望所有内容都与第三级1/2/3/whatever匹配,因此,例如,如果我使用的网址是/category/english/that/?s=what is this,则希望突出显示包含/category/english/that/的链接。

1 个答案:

答案 0 :(得分:0)

可能您不需要拆分location.pathname。试试

let pathname = '/category/english/this';
$(function() {
  $('ul a[href^="' + pathname + '"]').addClass('active');
});
.active {
  color: red
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<ul>
  <li><a href="/category/english/this/?s=text">this</a></li>
  <li><a href="/category/english/that/?s=text2/">that</a></li>
</ul>