Выделить активный пункт меню

У меня есть меню, созданное списком. Я хотел бы иметь возможность выделить текущий пункт меню.

С помощью этого скрипта я могу сопоставить последний бит URL (все после последнего /), но мне нужно, чтобы скрипт совпадал с двумя предыдущими папками в URL. Так, например, вместо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?

1 ответ

Решение

Этот должен работать:

$(function () {
  var url = window.location.href.substr(window.location.href.lastIndexOf("/") + 1);
  $('[href$="'+url+'"]').parent().addClass("active");
});
Другие вопросы по тегам