Показать сообщение отдельно
  #1 (permalink)  
Старый 09.02.2022, 12:06
Профессор
Отправить личное сообщение для ureech Посмотреть профиль Найти все сообщения от ureech
 
Регистрация: 11.03.2013
Сообщений: 778

Условие смены класса
Привет. Подскажите логику. Что то никак). Есть три ссылки
<li class="nav-item">
  <a title="Новости" class="nav-link text-nowrap" href="/diaries/tags/тег1/news">Новости<span class="counter badge">2</span></a> 
</li>
  <li class="nav-item">
  <a title="Статьи" class="nav-link text-nowrap" href="/diaries/tags/тег1/articles">Статьи<span class="counter badge">2</span></a> 
</li>
  <li class="nav-item">
  <a title="Дневники" class="nav-link ACTIVE text-nowrap" href="/diaries/tags/тег1/diaries">Дневники<span class="counter badge">2</span></a> 
</li>


Контент при клике выводится на одной странице. Меняется последняя часть урла. По умолчанию активна последняя ссылка. Нужно при клике на другую ссылку присвоить ей класс active соответственно убрав существующий. Делаю так
var path = window.location.pathname.split('/');
    let href;
    document.querySelectorAll('ul.menu-results_tabs .nav-link').forEach((el) => {
        href = (el.href).split('/');
        if(path[4] =='undefined')return false;
        if (href[6] == path[4] ) {
            $(el).addClass('active')
        } else {
            $(el).removeClass('active')
        }

    });

Но не хочет так работать, если path[4] =='undefined'. Тоесть при первом переходе на страницу path[4] нету в урле и должна быть активной последняя ссылка
Ответить с цитированием