0

次のようなナビゲーションメニューがあります。

<div class="my_menu">
  <ul>
    <li><a href="http://localhost/en/about-us">About Us</a></li>
    <li><a href="http://localhost/en/contact">Contact</a></li>
  </ul>
</div>

ページのURLと一致するときに、メニューにアクティブなクラスを追加する関数を作成しようとしています。

$(".top_navigation li a").filter(function() {
    alert($(this).href);
    alert($(location).attr('href'));
    return $(this).href() === $(location).attr('href');
  }).addClass('newClass');

私はどこで間違っているのですか?

4

3 に答える 3

2

location.hrefjqueryを必要とせずに、ページのURLに直接アクセスできます。

dom要素の属性を取得するには、次を使用できますattr

 $(this).attr('href')

これは機能するはずです:

$(".top_navigation li a").filter(function() {
    return $(this).attr('href') === location.href);
}).addClass('newClass');
于 2012-08-18T13:29:25.477 に答える
2

これは、あなたが期待していることを行うはずの、小さくて少し単純な jQuery スニペットです。

$(".topnavigation li a").each(function() {
    if($(this).attr("href") == window.location) {
        $(this).addClass("newClass");
    }
});

デモ:小さなリンク.

お役に立てば幸いです。

于 2012-08-18T13:34:39.573 に答える
0

このようにしてください。

$(".top_navigation li a").addClass(function() {
    return this.href === location.href ? "newClass" : "";
});
于 2012-08-18T13:55:42.553 に答える