Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Перебрать массив и выдать класс (https://javascript.ru/forum/events/82377-perebrat-massiv-i-vydat-klass.html)

toyboy__37 27.04.2021 09:03

Перебрать массив и выдать класс
 
Добрый день!
Подскажите, пожалуйста, как решить задачу.

Есть массив ссылок. Нужно перебрать массив и выдать класс только тем ссылкам, которые соответствуют текущему адресу страницы.

Решение на jq выглядит так:
$(function(){
   var cUrl = window.location.href;
   $(".home-card-tehnology-list li a").each(function(){
         if ($(this).attr("href") == cUrl){
               $(this).addClass("is-selected");
          }
    });
 });


Пытаюсь перебрать массив через .forEach, но он не понимает this, а без this он присваивает класс всем элементам массива.

Например:

arr.forEach( item => {
  if(item.href == cUrl) {
     item.classList.add('is-selected')  // тут он всем элементам присваивает, что логично 
  }
})

toyboy__37 27.04.2021 09:24

Разобрался почему условие не срабатывало...
У ссылок href был пустой и браузер выдавал автоматически ссылку текущего url. Получалось, что все элементы имели нужный url и получали класс.
Тему можно удалить


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