2012-01-30 2 views
0

Из-за большой помощи ori, у меня есть сценарий, работающий точно так, как я хотел. К сожалению, из-за моего собственного ограниченного знания jQuery - я не могу получить следующий этап работы!Как добавить класс к другому элементу?

Теперь я хочу расширить его, назначив функцию другому элементу, если соответствует href.

код, который работает, и правильно присваивает класс:

<script type="text/javascript"> 
    $(function(){ 
    var matches; 
    if(matches = location.href.match(/\?(pcat=\w+)/)) { 
    $('a[href*="' + matches[1] + '"]').addClass('active'); 
}; 
    }); 
</script> 

Это успешно добавить класс «активный» к исходному A HREF элемента. Теперь я хочу вместо этого назначить класс этой ссылке, чтобы открыть меню аккордеона, содержащее ссылки href на загрузке страницы.

Так я думал что-то вдоль линий:

<script type="text/javascript"> 
    $(function(){ 
    var matches; 
    if(matches = location.href.match(/\?(pcat=\w+)/)) { 
    $('a[href*="' + matches[1] + '"]').function() { 
     $('p.menuheader').addclass('openheader');} 
    ); 
    }); 

</script> 

Но это не работает, я думаю, что у меня есть синтаксические ошибки.

Любая помощь была бы высоко оценена! :)

ответ

0

В первом примере вы правильно звоните addClass с капиталом C.

Во втором примере вы вызываете addclass с нижним регистром c, который, вероятно, не работает.

0

Попробуйте использовать метод each и closest, чтобы найти содержащийся элемент. Также изменить addclass на addClass.

$('a[href*="' + matches[1] + '"]').each(function() { 
    $(this).closest('p.menuheader').addClass('openheader');} 
}); 
0

Если вы имеете в виду, что «меню аккордеон, который содержит HREF ссылки», почему просто не сделать так:

$('a[href*="' + matches[1] + '"]').parent().addclass('openheader'); 
Смежные вопросы