Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.08.2020, 07:34
Интересующийся
Отправить личное сообщение для zhenia3003 Посмотреть профиль Найти все сообщения от zhenia3003
 
Регистрация: 06.02.2018
Сообщений: 10

Match поиск совпадений
Если ссылка в браузере совпадает с атрибутом href в теге A, выделяем тег А через класс active, все работает отлично, НО почему первый тег А (кнопка Главная) всегда подсвечен? Как это исправить?
https://javascript.ru/forum/attachme...d=159694761 8
$('nav ul li a').each(function()
{
    if(decodeURI(window.location.pathname).match($(this).attr('href')))
    {
    	$(this).addClass('active');
    }
});

<nav>
	<ul>
		<li><a href="/">Главная</a></li>
		<li><a href="/view/">Популярное</a></li>
		<li><a href="/com/">Обсуждаемое</a></li>
		<li><a href="/rand/">Случайное</a></li>
	</ul>
</nav>
Изображения:
Тип файла: jpg Screenshot_1.jpg (18.5 Кб, 3 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2020, 08:27
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

zhenia3003,
var li = document.querySelectorAll('nav ul li a'), index = 0, path = decodeURI(window.location.pathname);
[...li].forEach((el, i) => path.match(el.getAttribute('href')) && (index = i));
li[index].classList.add('active');
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2020, 10:17
Интересующийся
Отправить личное сообщение для zhenia3003 Посмотреть профиль Найти все сообщения от zhenia3003
 
Регистрация: 06.02.2018
Сообщений: 10

Отличный пример, работает, но хочу понять, почему на Jquery не работает?
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2020, 10:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Сообщение от zhenia3003
почему на Jquery не работает?
работает и на Jquery, но потому что символ / есть в каждой ссылке, то идёт установка класса, на первом пункте меню.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск совпадений в строке goshanoob Общие вопросы Javascript 2 19.12.2018 12:38
Поиск совпадений на странице ArtemKaluzhin Общие вопросы Javascript 0 22.03.2015 01:04
Поиск в тексте javascript jQuery 3 31.05.2011 11:40
Поиск подстрок (Метод match) Игорь87 Общие вопросы Javascript 4 03.01.2011 13:23
RegExp - Глобальный поиск c запоминанием р-тов retator Общие вопросы Javascript 1 11.08.2010 22:53