Forum Programmation.web Identifiant d'élément associés par défaut à une variable javascript ?
Bonjour,
Voici le code suivant :
http://pastebin.com/m26e285a1
D'une part, je constate que le navigateur (FF ou IE) initialise une variable javascript pour chaque élément pourvu d'un id. Je me demande si dans mon code de travail, je ne devrais pas retirer l'initialisation explicite des variables.
Ce code passe sans problème avec Mozilla Firefox (la console d'erreur ne renvoit rien). Cependant, sous IE, j'obtiens un joli message : "Cet objet ne gère pas cette propriété ou cette méthode".
J'ai fait quelque chose qui cloche, ou s'agit-il d'un comportement normal ?
# Précision
Posté par Anonyme . Évalué à 1.
L'erreur se produit à la ligne 18, apparemment :
tr_id = document.getElementById("tr_id");
# ajouter var au moins
Posté par Olivier Jeannet . Évalué à 2.
var tr_id = document.getElementById("tr_id");
NB: Si on veut des variables globales il est conseillé de les regrouper dans une variable qui a un nom précis, ça permet aussi d'éviter les collisions avec les variable prédéfinie du langage (ou les mot-clés) :
var globals = {
messageErreur: "donnée erronée";
objetCourant: null;
etatValidation = 0;
};
De plus, ton input n'est pas dans un élément (il n'est pas dans un td, et on ne peut rien mettre dans un tr, à part un td).
Au fait, tu veux faire quoi ? Pouvoir cacher ou montrer la ligne contenant le texte ?
[^] # Re: ajouter var au moins
Posté par Anonyme . Évalué à 1.
Merci d'avoir répondu.
Pour l'input dans un tr, c'est une coquille :)
Ce sont des variables globales (elles sont défines au « top level », ça a un sens de mettre var ici ?). Mais merci pour le truc avec globals.
Je cherche en effet à cacher tout une ligne. Mais ce que je me demandais, c'était si le navigateur initialise automatiquement une variable pour chaque élément pourvu d'une id.
[^] # Re: ajouter var au moins
Posté par Olivier Jeannet . Évalué à 1.
Je ne vois pas de raison pour laquelle le navigateur ferait ça, je pense (et suis même certain) que la réponse est non.
Pour cacher toute une ligne tu dois savoir faire, avec la propriété "display = none".
[^] # Re: ajouter var au moins
Posté par Anonyme . Évalué à 1.
C'est ce qui me semble logique. A ce jour je n'ai pas trouvé de ligne qui soit à l'origine de cette initalisation semblant "automatique".
Si j'ai plus d'informations, je ferai un retour. Merci !
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.