Forum Programmation.web Javascript : getElementById avec un paramètre variable

Posté par  (site web personnel) .
Étiquettes : aucune
0
20
sept.
2006
Bonjour,
je souhaite donner une variable en paramètre à getElementById() mais le code suivant ne fonctionne pas :

function deleteSection (section) {
section = 'section_'+section;
document.getElementById(section).style.display = "none";
}


Il considère le paramètre comme une chaîne littérale et pas une variable...
Comment puis-je faire ca ?
Merci beaucoup!
  • # Sous n'importe quel browser?

    Posté par  . Évalué à 2.

    Il y a un petit truc auquel il faut faire attention si tu testes sous IE, il a quelques problemes a gérer les variables qui ont le meme nom qu'un element de ton document, donc si tu as un quelque part, le probleme pourrait etre là.

    Sinon le problème doit venir d'ailleurs, ce bout de script est correct. As-tu essayé d'alert(section) histoire de voir ce qu'il y avait bien dedans, et si ce que tu passes à ta fonction est bon?
    • [^] # Re: Sous n'importe quel browser?

      Posté par  (site web personnel) . Évalué à 1.

      J'ai testé avec l'alert, il me renvoie ce que j'attends, mais le débuggeur Firefox me dit :
      Erreur : document.getElementById(section) has no properties
      
      alors que j'ai bien un avec le bon ID et du contenu...
      • [^] # Re: Sous n'importe quel browser?

        Posté par  . Évalué à 2.

        Mmmh c'est louche, est-ce que tu vois bien l'element avec cet id dans le DOM Inspector? Ta fonction fonctionne, c'est sur, pour autant que t'aies un id qui existe. Peut etre un bout de code html avec tout ca pourrait aider...

        P.S. il faut rajouter <foo id="section"> dans mon post précédent, ostie d'éditeur :)
  • # fonction qui marche

    Posté par  . Évalué à 1.

    J'utilise la fonction suivante, qui marche sous IE et sous Firefox au moins, et qui utilise un paramètre :

    function cacherSiExiste(id) {
    . . var elt = document.getElementById(id);
    . . if (elt != null) elt.style.visibility ='hidden';
    }

    Et pour l'appel de la fonction, j'ai par exemple :
    cacherSiExiste('tableResultats');

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.