Выделить активный пункт меню
У меня есть меню, созданное списком. Я хотел бы иметь возможность выделить текущий пункт меню.
С помощью этого скрипта я могу сопоставить последний бит 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");
});