Доброго дня!
Есть блок меню, написан на PHP, на выходе имеет вот такой HTML-код (примерно):
<div class="tag_menu">
<ul class="dop_product_tag">
<li><a href="https://test.ru/primer1" class="primer1">Пример1</a></li>
<li><a href="https://test.ru/primer2" class="primer2">Пример2</a></li>
<li><a href="https://test.ru/primer3" class="primer3">Пример3</a></li>
<li><a href="https://test.ru/primer4" class="primer4">Пример4</a></li>
<li><a href="https://test.ru/primer5" class="primer5">Пример5</a></li>
</div>
Мне нужно подсветить ссылку открытой страницы, то есть добавить дополнительный класс к элементу.
Я это сделал через JavaScript:
document.addEventListener("DOMContentLoaded", function() {
var currentPage = window.location.pathname;
var menuLinks = document.querySelectorAll(".dop_product_tag a");
for (var i = 0; i < menuLinks.length; i++) {
if (menuLinks[i].pathname === currentPage) {
menuLinks[i].classList.add("active");
}
}
});
Всё работает, он к элементу открытой странице добавляет класс active например:
<li><a href="https://test.ru/primer2" class="primer2 active">Пример2</a></li>
Но когда я дописываю скрипт на проверку пагинации, он не работает: (пагинация в виде:
https://test.ru/primer2/page/2/)
я дописываю в if
|| is_paged()
if (menuLinks[i].pathname === currentPage || is_paged())
а далее функцию (соответственно после всего кода)
document.addEventListener("DOMContentLoaded", function() {
var currentPage = window.location.pathname;
var menuLinks = document.querySelectorAll(".dop_product_tag a");
for (var i = 0; i < menuLinks.length; i++) {
if (menuLinks[i].pathname === currentPage || is_paged()) {
menuLinks[i].classList.add("active");
}
}
});
function is_paged() {
return window.location.pathname.includes("/page/");
}
класс не добавляется и соответственно ссылка не подсвечивается.
также есть фильтр товаров в виде
/?filter_type_test=test45
какой код для фильтра писать, чтобы добавлялся класс я не знаю.
Подскажите пожалуйста, может поможет кто решить?
Спасибо!