У меня есть меню, над которым я работаю, и я пытаюсь изменить класс CSS на ID и дочерний элемент.
У меня есть меню, в котором есть разделы (пример: aboutsection). Я добавил идентификатор в ul для этого раздела. То, что я хотел бы сделать, - это посмотреть атрибут href для каждого дочернего якоря идентификатора, и если текущий URL-адрес соответствует любой из ссылок в дочерних элементах, добавьте класс к идентификатору aboutsection "currentTab" и фактическому link добавьте класс "currentLink".
У меня есть следующий jQuery, но он не работает.
$(document).ready(function(){
$( "aboutsection" ).each( function(){
if($(this).attr('href') == document.URL){
$(this ).addClass( "currentLink" );
aboutsection.addclass('currentTab');
}
});
});
Ваш общий подход к использованию
$(elementId).addClass('newClassName');
верно.
Однако весь цикл может оказаться бесполезным, потому что ваш селектор не может ничего вернуть.
Если aboutsection является классом элемента, попробуйте
$('.aboutsection').each(function(){
$(this).addClass('currentLink');
});
который практически такой же, как:
$('.aboutsection').addClass('currentLink');
Если aboutsection - это идентификатор элемента (должен быть уникальным на всей странице), попробуйте
$('#aboutsection').addClass('currentLink');
$( "aboutsection" ).each( function(){
не является правильным.
если "aboutsection" - это класс, который вам нужен:
$( ".aboutsection" ).each( function(){
или если вам нужен идентификатор:
$( "#aboutsection" ).each( function(){
Ваш код ищет HTML-элемент, заключенный в тег с именем aboutsection
. Если это действительно идентификатор вашего элемента <ul>
, вам нужно будет обновить свой код.
Кроме того, aboutsection.addClass()
будет иметь никакого эффекта, поскольку он не определен:
$(function() {
$('#aboutsection').each(function() {
if($(this).attr('href') == document.URL)
{
$(this).addClass('currentLink');
$(this).addclass('currentTab');
}
});
});