2009-10-26 6 views
3

У меня есть меню горизонтальной навигации, в котором я могу редактировать исходный код, моя единственная опция - динамически добавлять классы при загрузке через JQUERY.JQuery - применить класс на основе содержимого <a>

Представьте У меня есть 3 вкладки:

Home, Profile, Blog 

Каждый со ссылкой, как так:

<a href="home.html">Home</a> 

Возможно ли Jquery смотреть между <a> </a> тегов и найти текст (Например, Home) и использовать этот текст как класс?

Так что мой <a href="home.html"> становится: <a class="Home" href="home.html">

ответ

1
$("a").each(function() { 
    var self = $(this); 
    self.addClass(self.text()); 
}); 
5

Вы можете использовать :contains, если вы знаете, что вы ищете:

$('a :contains(Home)').addClass('home'); 

Я думаю, что это было бы более надежным:

$('a.nav').each(function() { 

    // add class with name of the link's text 
    $(this).addClass($(this).text()); 
}); 

Предполагая, что вы даете свои навигационные ссылки классу nav.

1

Вы хотите что-то вроде этого: второй пример

$("a:contains('Home')").removeClass().addClass("Home"); 
+0

Karim79, если возможно больше, что вы после этого. – GenericTypeTea