[Résolu] Pb changement de class javascript

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

manuura
Nouveau WRInaute
 
Messages: 11
Inscription: Mar Fév 28, 2006 17:31

[Résolu] Pb changement de class javascript

Message le Jeu Avr 17, 2008 21:01

Bonjour,

je me permets de solliciter l'aide éclairée des membres du forum car je sèche bêtement sur un bout de code javascript tout con depuis un bon moment.

Je m'explique.

Je souhaite au moment d'un clic sur un élément, changer la classe de cet élément ainsi que celle d'autres éléments de la page.

J'ai donc un code html qui ressemble à ça :

Code: Tout sélectionner
<ul>
<li class="left"><a class="off" href="#;" onclick="changeEtat(); this.className='on';">bla</a></li>
<li class="mid"><a class="on" href="#;" onclick="changeEtat(); this.className='on';">bla</a></li>
<li class="right"><a class="on" href="#;" onclick="changeEtat(); this.className='on';">bla</a></li>
</ul>


avec comme fonction javascript :

Code: Tout sélectionner
function changeEtat() {
var a = document.getElementsByTagName('a');
   for (var i=0; a.length; i++) {
      if(a[i].className == 'on') {
         a[i].className = 'off';
      }
   }
}


Donc ma fonction va chercher tous les éléments de classe 'on' et les passe en 'off'.
Sauf que firebug me renvoit l'erreur suivante :

Code: Tout sélectionner
a[i] has no properties
[Break on this error] if(a[i].className == 'on') {


Cela a pour conséquence de bien mettre mes autres éléments en classe 'off' mais je pense qu'il y a un pb avant la fin de ma boucle et que du coup mon action this.className='on' n'arrive jamais.

Voilà, je bloque là-dessus donc si quelqu'un pouvait m'indiquer comment débugger mon code, je lui en serai très reconnaissant.

Merci :)

P.S. : au passage, comment puis-je inclure mon this.className='on' dans ma fonction ?

EDIT : j'ai trouvé, il faut savoir écrire une boucle tout simplement :oops:

Code: Tout sélectionner
for (var i in a) {
      if(a[i].className == 'on') {
         a[i].className = 'off';
      }
   }

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités