Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1224 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Pb classe javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Pb classe javascript

n°1719533
manuura
Posté le 17-04-2008 à 22:51:35  profilanswer
 

Bonjour,
 
je me permets de solliciter votre aide 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, modifier 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 :
  1. <ul>
  2. <li class="left"><a class="off" href="#;" onclick="changeEtat(); this.className='on';">bla</a></li>
  3. <li class="mid"><a class="on" href="#;" onclick="changeEtat(); this.className='on';">bla</a></li>
  4. <li class="right"><a class="on" href="#;" onclick="changeEtat(); this.className='on';">bla</a></li>
  5. </ul>


 
avec comme fonction javascript :
 

Code :
  1. function changeEtat() {
  2. var a = document.getElementsByTagName('a');
  3. for (var i=0; a.length; i++) {
  4.  if(a[i].className == 'on') {
  5.   a[i].className = 'off';
  6.  }
  7. }
  8. }


 
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 :
  1. a[i] has no properties
  2. [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 ?


Message édité par manuura le 18-04-2008 à 00:11:20
mood
Publicité
Posté le 17-04-2008 à 22:51:35  profilanswer
 

n°1719538
tpierron
Posté le 17-04-2008 à 23:00:33  profilanswer
 

Pour parcourir les éléments d'un tableau, on peut soit :
 

Code :
  1. for (var i in a)

Ou :

Code :
  1. for (var i = 0; a[i]; i ++)

Ou encore :

Code :
  1. for (var i = 0; i < a.length; i ++)


 
Avec ça, tu va recevoir une référence nulle à un moment ou un autre :

Code :
  1. for (var i=0; a.length; i++)


Message édité par tpierron le 17-04-2008 à 23:05:42
n°1719540
manuura
Posté le 17-04-2008 à 23:09:04  profilanswer
 

Ah ben oui forcément ça marche mieux quand on sait écrire correctement une boucle.  :pt1cable:  
Merci beaucoup pour les détails  :)  
Une idée pour le this.className='on' dans la fonction ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [Résolu] Pb classe javascript

 

Sujets relatifs
[résolu] CSS-HTML - texte surligné !???[Résolu] Problème de récupération
[UML] aide diagramme de classeIntegrer Javascript dans un blog ?
[RESOLU][MYSQL] variable dans procédure stockée toujours NULL[CSS] Sur firefox Ok, mais IE NotOk [RESOLU]
[Resolu] Boite de Saisi avec juste OK[Résolu] Afficher les 10 dernières lignes d'un fichier
[Résolu] porté d'une variable vector[Résolu] CSS dans jsp
Plus de sujets relatifs à : [Résolu] Pb classe javascript


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR