0

我尝试获取 url 路径,然后在 li 示例上添加活动类:www.mysite.com/?p=xxxx

x 将根据用户点击的链接而变化

我试过这个:

<ul class="top_menu">
<li class="tider"><a href="/?p=1884">Åbningstider</a></li>
<li class="butikker"><a href="/?p=1885">Butikker</a></li>
<li class="sker"><a href="/?p=1886">Det sker</a></li>
<li class="nyhedsbrev"><a href="/?p=1887">Nyhedsbrev</a></li>
<li class="vej"><a href="/?p=1888">Find vej</a></li>
</ul>

var text = window.location.href.match(/http:\/\/www\.mysite\.com\/(.+)/)[1].replace(/_/g,' ');
$("#nav li").filter(function() {
  return $.text([this]) == text;
}).addClass("active");

但什么也没发生。我做错了什么?

4

3 回答 3

7

这行得通!

$(document).ready(function(){

    var full_path = location.href.split("#")[0];

    $(".top_menu li a").each(function(){

        var $this = $(this);

        if($this.prop("href").split("#")[0] == full_path) {

            $(this).parent().addClass("active");

        }

    });

});
于 2012-08-03T06:29:43.330 回答
1

您可以将末端与属性选择器一起使用:

var pid = '1885'; //Get the current value of p
$('#nav li a[href$="'+pid+'"]').parent().addClass('active');

这将获得 href 属性结束的链接pid(在本例中为 1885)。

p=1885如果您有 2 个以相同字符串结尾的值(如和p=11885),这将导致问题。

于 2012-08-02T07:57:51.313 回答
0

如何更改类名并使用 PHP 和 jQuery:

<?php

if(isset($_GET['p'])) {

    echo '<script type="text/javascript">
    $(document).ready(function(){';

    $from_url = $_GET['p'];

    echo '
    $(\'p_' . $from_url . '\').addClass(\'active\');
        });
    </script>';
    }

?>

例如,在“www.mysite.com/?p=1888”上面将打印:

<script type="text/javascript">
$(document).ready(function(){
    $('.p_1888').addClass('active');
    });
</script>

它将为类名为“p_1888”的 HTML 添加类“活动”。例如:

<li class="p_1888"><a href="/?p=1888">Find vej</a></li>

也在这里解释。

于 2012-08-02T08:03:09.343 回答