Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Условие смены класса (https://javascript.ru/forum/dom-window/83668-uslovie-smeny-klassa.html)

ureech 09.02.2022 12:06

Условие смены класса
 
Привет. Подскажите логику. Что то никак). Есть три ссылки
<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] нету в урле и должна быть активной последняя ссылка

ksa 09.02.2022 12:13

Цитата:

Сообщение от ureech
Но не хочет так работать, если path[4] =='undefined'.

Почему сравниваешь со строкой?
https://tproger.ru/translations/how-...in-javascript/

ureech 09.02.2022 13:04

Понял. Поправил). Спасибо.


Часовой пояс GMT +3, время: 05:25.