2009-10-29 5 views
0

ОК, возможно, название оленья кожа лучше всего объяснить, что им пытаются для того чтобы достигнуть, но если я могу объяснить лучше, надеюсь, кто-то может помочь мне:Jquery - Добавить динамический класс в другой DIV

Im используя следующий код, чтобы выбрать текст проводится в <a> и добавить его как класс этого элемента:

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

так, например:

<a class="nav" href="page1.html">Google</a> 
<a class="nav" href="page2.html">Yahoo</a> 
<a class="nav" href="page3.html">Bing</a> 

сТАНОВИТСЯ:

<a class="nav Google" href="page1.html">Google</a> 
<a class="nav Yahoo" href="page2.html">Yahoo</a>  
<a class="nav Bing" href="page3.html">Bing</a> 

Im используя другой кусок кода, чтобы узнать, на какой странице находится пользователь в данный момент, либо Google, Yahoo или Bing, а затем я выделяю еще один класс «Selected»

например, если я был на страница Google <a> класс становится:

<a class="nav Google selected" href="page1.html">Google</a> 

Я хотел бы расширить это немного дальше, и, вероятно, может объяснить, лучше всего с помощью примера:

<a class="nav Google selected" href="page1.html">Google</a> 
<a class="nav Yahoo" href="page2.html">Yahoo</a>  
<a class="nav Bing" href="page3.html">Bing</a> 

<div class="container Google"> 

Lots of content 

</div> 

Как и выше, когда «Google» имеет класс «selected», добавьте это значение <div class="container"> и то же самое, что и при нажатии на другие ссылки.

Итак, другими словами, которые когда-либо <a> трюмы «выбран» добавить предыдущий класс <div class="container">

Я знаю, что есть много способов сделать это гораздо менее «Hacky» способами, но у меня нет другого выбора, кроме как сделать это так, поскольку я никак не могу редактировать источник страницы, поэтому это должно быть решение на основе браузера, а не серверная.

+0

При нажатии на другую ссылку, вы хотите, чтобы удалить «Google» класс и добавить «Yahoo» класс? Или это не проблема, потому что страница перезагрузится, и любые динамически добавленные классы будут очищены? –

+0

Страница перезагрузится. – CLiown

ответ

1
$('.nav').click(function(){ 
    $(this).addClass($(this).text()); // I believe you already do this. 
    $('.conatiner').addClass($(this).text()); 
}); 
+0

Perfecto! И вы сделали мой оригинальный код намного проще. – CLiown

0

Вы можете добавить класс к контейнеру, как это:

$('.conatiner').addClass($('a.selected').text()); 
Смежные вопросы