У меня есть такой HTML фрагмент кода:JQuery функция документа вопрос
<ul class="myClass">
<li><a href="url1.html">first link</a></li>
<li><a href="url2.html">second link</a></li>
<li><a href="url2.html">third link</a></li>
<li><a href="url3.html">fourth link</a></li>
</ul>
Идея заключается в том, что, когда я нажимаю на ссылку, он должен написать на нажимается ссылка строку следующего объекта: класс = «активный». Например, если мы имеем
<li><a href="url1.html">first link</a></li>`
и жму его, функция JQuery должна изменить его на:
<li><a class="active" href="url1.html">first link</a></li>
Но моя функция JQuery действительно не работает. Я очень признателен, если вы сможете мне помочь. Вот источник функции JQuery:
$(document).ready(function(){
var currentUrl = document.location.pathname;
$('#myClass').each(function() {
if (currentUrl == $(this).children('a').attr('href')) {
$(this).children('a').addClass('active');
}
});
});
UPDATE Я положил войти console.log(currentUrl +"=="+ $(this).children('a').attr('href'));
и он сказал, что состояние не определено. Я думаю, что условие «если» не выполнено, потому что я положил и еще условие и поместил и alert
там, так что любое нажатие предупреждений и if
условие никогда не выполняется.
Вам нужно быть более конкретным, чем «на самом деле не работает» - что происходит, что не должно? –
Вы посмотрели, что это возвращает: 'console.log (currentUrl +" == "+ $ (this) .children ('a'). Attr ('href'));' – epascarello
@AnthonyGrist, когда я нажимаю ссылку , свойство 'class = "active"' не установлено –