0

リストで作成したメニューがあります。現在のメニュー項目を強調表示できるようにしたいと思います。

このスクリプトを使用すると、URLの最後のビット(最後以降のすべて/)を一致させることができますが、URL内の前の2つのフォルダーも一致させるスクリプトが必要です。だから、例えばの代わりにindex.html、私はつかみたい/folder1/folder2/index.htmlです。

$(function () {
    var url = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
    $(".nav li a").each(function () {
        //console.log(url);
        if ($(this).attr("href") == url) $(this).parent().addClass("active");
    });
});


//Markup:

<ul id="nav">
      <li><a href="/folder1/folder2/index.html">Home</a></li>
      <li><a href="/folder1/folder2/about.html">About</a></li>
      <li><a href="/folder1/folder2/contact.html">Contact</a></li>
</ul>

URLのより多くの部分に一致するようにスクリプトを変更するにはどうすればよいですか?

4

1 に答える 1

2

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

$(function () {
  var url = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
  $('[href$="'+url+'"]').parent().addClass("active");
});
于 2013-03-06T09:47:27.873 に答える