@steamreg58

Cannot read properties of undefined (reading 'length'). В чем ошибка?

Код работает, класс актив добавляется, но выдает ошибку в консоли:

Uncaught TypeError: Cannot read properties of undefined (reading 'length')

Я прохожусь по всем ссылкам меню и если ссылка(подссылка внутри тоже) совпадает с a href, то меню добавляется active:

<ul class="sidebar">
		<li>
			<a href="news/top/" class="menu-item"> <!-- href="#"-->
				<span><i class="fa fa-home"></i></span><h3>Топ Новости</h3>
			</a>
		</li>
		<li>
			<a href="news/top2/" class="menu-item"> <!-- href="#"-->
				<span><i class="fa fa-home"></i></span><h3>Топ Новости 2</h3>
			</a>
		</li>
		<li>
			<a href="news/top3/" class="menu-item"> <!-- href="#"-->
				<span><i class="fa fa-home"></i></span><h3>Топ Новости 3</h3>
			</a>
		</li>
		<li>
			<a href="news/top4/" class="menu-item">
				<span><i class="fa fa-home"></i></span><h3>Топ Новости 4</h3>
			</a>
		</li>
</ul>

$('.sidebar li').removeClass('active');
var path = window.location.pathname;
$('.sidebar li a').each(function() {
	var href = $(this).attr('href');
	if(path.slice(1).substring(0, href.length) === href) {
		$(this).parent('li').addClass('active');
	}
});
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Очевидно, где-то дальше, после активного пункта, у вас есть тег a без атрибута href.
Ну или ошибку генерирует какой-то другой код.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы