2009-10-29 9 views
0

OK, peut-être le titre ne marche pas mieux expliquer ce que im essayant de achive mais si je peux expliquer mieux nous espérons que quelqu'un peut me aider:Jquery - Ajouter une classe dynamique à un autre DIV

Im en utilisant le code suivant pour sélectionner la texte tenue dans <a> et l'ajouter comme la classe de cet élément:

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

Ainsi, par exemple:

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

Devient:

<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 en utilisant un autre morceau de code pour savoir quelle page l'utilisateur est actuellement, que ce soit Google, Yahoo ou Bing, et j'allouent ensuite une autre classe de « Sélectionné »

Par exemple, si j'étais la page de Google la classe <a> devient:

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

Je voudrais étendre un peu plus loin et peut sans doute expliquer mieux par un exemple:

<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> 

Ainsi, comme ci-dessus, lorsque 'Google' a la classe 'selected', ajoutez-la à <div class="container">, et la même chose lorsque les autres liens sont cliqués.

Donc, en d'autres termes que jamais <a> holds « sélectionné » ajouter la classe précédente à <div class="container">

Je sais qu'il ya beaucoup de façons de le faire dans beaucoup moins façons « aki », mais je n'ai pas d'autre choix que de le faire De cette façon, je ne peux pas éditer la source de la page de toute façon, il doit donc être une solution basée sur un navigateur plutôt que sur le serveur.

+0

Lorsque vous cliquez sur un lien différent, est-ce que vous voulez supprimer la classe « Google » et ajouter la classe « Yahoo »? Ou n'est-ce pas un problème car la page se rechargera et toutes les classes ajoutées dynamiquement seront effacées? –

+0

La page sera rechargée. – CLiown

Répondre

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

Parfait! Et vous avez rendu mon code original beaucoup plus simple. – CLiown

0

Vous pouvez ajouter la classe au récipient comme celui-ci:

$('.conatiner').addClass($('a.selected').text()); 
Questions connexes