【问题标题】:Add Active Class to parent element Based on URL基于 URL 将活动类添加到父元素
【发布时间】:2017-12-28 22:18:33
【问题描述】:

我需要将“活动”类分配给菜单导航,但应将活动类分配给“li”元素而不是链接“a”元素。我怎样才能修改下面的代码来实现这个结果?还有另一个问题,那就是所有元素都被分配给活动类,因为我的链接只改变了最后几个字母..

<nav>
    <ul class="tabbable">
        <li class="active"><a href="/portal.php?mode=articles&block=mylink1">my link</a></li>
        <li class=""><a href="/portal.php?mode=articles&block=mylink2">my link</a></li>
        <li class=""><a href="/portal.php?mode=articles&block=mylink3">my link</a></li>
    </ul>
</nav>

我的 JS:

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

【问题讨论】:

    标签: javascript jquery html css twitter-bootstrap-3


    【解决方案1】:
    head.ready(function () {
      $('nav a[href^="/' + location.pathname.split("/")[1] + '"]').closest('li').addClass('active');
    });
    

    【讨论】:

    • 您好感谢您的快速回复!它有效,但有一个问题。所有元素都标记为活动。 :-/ 我用链接示例更新了第一篇文章。
    • 你应该正确选择a。此处的元素:$('nav a[href^="/' + location.pathname.split("/")[1] + '"]')
    • 我试过了,但它不起作用:$('nav a[href^="&block=' + location.pathname.split("&block=")[1] + '"]' ).closest('li').addClass('active');
    • 我不知道你想达到什么目的。像这样的工作: $('nav a[href="' +location.pathname + location.search +'"]') - 它只选择一个 'a' 元素
    • 太棒了!这有效: $('nav a[href="' +location.pathname + location.search +'"]') 你拯救了我的一天!我在这个问题上很久了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-24
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多