Forum Programmation.web Identifiant d'élément associés par défaut à une variable javascript ?

Posté par  .
Étiquettes :
0
19
mar.
2008

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  . Évalué à 1.

    Désolé pour les retours chariots absents :-/

    L'erreur se produit à la ligne 18, apparemment :

    tr_id = document.getElementById("tr_id");
  • # ajouter var au moins

    Posté par  . Évalué à 2.

    Pour commencer, j'ajouterais un "var" (sinon ta variable est globale et c'est à éviter) :
    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  . Évalué à 1.

      Bonjour,

      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  . Évalué à 1.

        Mais ce que je me demandais, c'était si le navigateur initialise automatiquement une variable pour chaque élément pourvu d'une id.

        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  . É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.

          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.