getElementsByClassName n'en renvoie qu'un sur 2 ?!

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par legarspol, 18 Juillet 2010.

  1. legarspol
    legarspol Nouveau WRInaute
    Inscrit:
    21 Décembre 2006
    Messages:
    20
    J'aime reçus:
    0
    Voici le code qui bug:
    Code:
    	var vide = document.getElementsByClassName('autour2');
    
    Il ne me retourne qu'un élément sur 2 qui possède la classe "autour 2".
    Est ce que vous savez pourquoi ?
    Pour vider le tableau renvoyer par cette fonction j'utilise:
    Code:
    var vide = document.getElementsByClassName('autour2');
    	for(var i=0; i<vide.length; i++)
    	{
    	vide[i].className = ''; //il retire donc la class "autour2"
    	}
    Je vous met le lien vers un cas épuré de l'erreur.:
    http://legarspol.free.fr/testdeplacement.html
    La cellule avec "autour2" devient vert clair.
    Quand on clique sur un lien les cases alentour ce colorent de vert clair mais d'abord ca décolore toutes les cases.
    Normalement: cliquer sur un des liens puis sur un autre:
    une case sur 2 ce décolore...
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    GetElementsByClassName renvoie une "live nodelist", i.e. elle se met à jour quand tu modifies des objets. Dans ton cas, au fur et à mesure que tu changes la classe des éléments en question, ils disparaissent de la liste, alors que toi tu sautes à l'index suivant.

    Exemple: au départ il renvoie une liste de trois éléments A, B et C. Tu commences avec i=0, tu vires la classe de A. La liste ne contient maintenant plus que B et C, mais au tour suivant tu utilises i=1, donc C, et tu as sauté B. Ensuite tu veux passer à i=2, mais la longueur de la liste n'est plus que de 1 (elle ne contient que B), donc tu sors de ta boucle.

    Une solution consiste à faire un while (vide.length>0) {vide.className='';}

    NB: d'un coup de débugger (par exemple avec Opera Dragonfly, mais je suppose qu'on peut faire pareil avec Firebug) c'est assez évident.

    Jacques.
     
  3. legarspol
    legarspol Nouveau WRInaute
    Inscrit:
    21 Décembre 2006
    Messages:
    20
    J'aime reçus:
    0
    [Resolu]: getElementsByClassName n'en renvoie qu'un sur 2 ?!

    Super, Merci Beaucoup pour ce conseil. Je vais tenter.
    D'autre part j'ai firebug mais je ne l'ai jamais tester avec du javascript...
    Je vais tenter!

    EDIT:
    J'ai remplacer par:
    Code:
    while(vide.length>0)
    	{
    	vide[0].className = '';
    	}
    Et ca marche.
    Cependant j'ai pas su me servir de firebug
    Et pour finir j'ai pas su mettre le sujet sur [Resolu}] ^^
    Merci encore !
     
Chargement...
Similar Threads - getElementsByClassName renvoie Forum Date
function getElementsByClassName Problèmes de référencement spécifiques à vos sites 30 Novembre 2007
google renvoie mes visiteurs sur un autre site Problèmes de référencement spécifiques à vos sites 10 Octobre 2021
WordPress Site accessible qui renvoie une erreur 500 Administration d'un site Web 19 Novembre 2019
Title et Description en dble alors que c'est un renvoie 301 Référencement Google 6 Septembre 2018
Pourquoi Google renvoie toujours sur ma page d'accueil Référencement Google 18 Janvier 2015
Peu de clics sur la bannière qui renvoie a ma boutique Débuter en référencement 24 Novembre 2012
Referencement google me renvoie vers une page blanche Crawl et indexation Google, sitemaps 25 Mai 2012
Résultats google renvoient à une page d'un site "louche" Problèmes de référencement spécifiques à vos sites 16 Mars 2012
Que renvoie un htaccess? Développement d'un site Web ou d'une appli mobile 2 Février 2012
Un domaine renvoie le meme contenu que mon site principale ? Crawl et indexation Google, sitemaps 26 Août 2011
blog qui me pique mon contenu et me renvoie un max de trafic Débuter en référencement 9 Novembre 2010
Google renvoie un ingénieur soupçonné d'avoir espionné de jeunes internautes Google : l'entreprise, les sites web, les services 15 Septembre 2010
Des 404 qui renvoient du 302 Développement d'un site Web ou d'une appli mobile 24 Février 2010
Google Bot renvoie une erreur 404 Référencement Google 27 Janvier 2010
Nous avons constaté que l'en-tête de votre page d'erreur 404 (fichier introuvable) renvoie Crawl et indexation Google, sitemaps 9 Septembre 2009
Problème avec REQUEST_URI qui ne me renvoie pas l'URL rewritée ! Développement d'un site Web ou d'une appli mobile 6 Décembre 2008
Besoin d'aide: ma 404 renvoie un code 200 URL Rewriting et .htaccess 22 Octobre 2006
La commande link ne me renvoie plus rien Référencement Google 24 Avril 2006
Header renvoie 302 au lieu de 404 ou alors ne redirige pas Administration d'un site Web 9 Octobre 2005
Qu'est ce que ça veut dire quand link: ne renvoie plus rien Netlinking, backlinks, liens et redirections 1 Septembre 2004