Partage
  • Partager sur Facebook
  • Partager sur Twitter

document.getElementById est-il utile ?

To be or not to be...?

    20 avril 2015 à 16:14:36

    Bonjour,
    Petite question théorico-pratique aux experts du JS.
    Bricoleur très ponctuel et très amateur (au mauvais sens) en JavaScript, je me suis aperçu, je ne sais plus où, ni comment, qu'au lieu d'utiliser le traditionnel, mais lourd: document.getElementById("flecheG") pour pointer vers l'élément ayant l'id #flecheG, on peut se contenter de mettre le seul nom de cet id.
    Apparemment, cela fonctionne tout aussi bien.
    Par exemple, sur ce petit code récent pour scroller la page avec deux flèches, pour définir les écouteurs, au lieu de :
    document.getElementById("flecheG").onmouseover = function scrollG(){
    j'ai écrit tout simplement:
    flecheG.onmouseover = function scrollG(){
    et apparemment, ça fonctionne parfaitement (testé sous Chrome, FF et IE, versions récentes).
    Ma question est donc:
    est-ce une pratique officiellement prévue (et alors pourquoi est-ce que tout le monde s'encombre encore avec document.getElementById ?)
    est-ce une amélioration récente des interpréteurs ?
    ou est-ce que "ça marche, mais ça devrait pas et parfois ça plante" ? (Quand et pourquoi alors ?)
    Merci d'avance à ceux qui sauront me répondre !
    • Partager sur Facebook
    • Partager sur Twitter
    "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
      20 avril 2015 à 16:28:37

      • Partager sur Facebook
      • Partager sur Twitter
      Ce n'est pas parce que vous ne savez pas vous servir d'un marteau qu'il faut planter des clous au tournevis.
        20 avril 2015 à 16:47:01

        Ok, merci nightmat ;

        je me doutais bien que c'était trop beau ; j'en retiens cette conclusion un peu paradoxale:

        "So… crazy as it seems this behavior is now technically safe to use in the latest version of all major browsers in standards mode. But while named access can seem somewhat convenient , it should not be used."

        Retour au classicisme donc ;

        ce qui serait bien au moins, c'est une écriture abrégée de ce trop long document.getElementById("id") : gebi("id") par exemple !

        -
        Edité par philiga 20 avril 2015 à 16:48:48

        • Partager sur Facebook
        • Partager sur Twitter
        "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)
          20 avril 2015 à 19:02:47

          philiga a écrit:

          ce qui serait bien au moins, c'est une écriture abrégée de ce trop long document.getElementById("id") : gebi("id") par exemple !


          En voilà une remarque pleine d'intérêt, car oui c'est chiant à force de devoir copier et coller cette fonction si looongue :)
          • Partager sur Facebook
          • Partager sur Twitter
          Stéphanie, blonde mais je me débrouille (....?) ** Mon sondage: mode Dark VS mode Clean
            20 avril 2015 à 19:10:24

            Cette pratique commode avait été introduite par Microsoft dans les années 90, elle a été reprise récemment, bien que les puristes crient au scandale...

            Rien ne vous empêche (sauf peut-être l'utilisation de jQuery) de redéfinir cette méthode avec une ligne telle que :

            function $(id) {return document.getElementById(id);}



            • Partager sur Facebook
            • Partager sur Twitter
              20 avril 2015 à 19:44:41

              Ah oui, mais en effet, on ne charge pas toujours jQuery et même s'il est là, ça semble imposer des détours à l'interpréteur ; je préfère encore faire l'effort de copier le getElementById et m'en tenir aux fonctions implémentées de base.

              • Partager sur Facebook
              • Partager sur Twitter
              "La Vérité doit être dite, le monde dût-il en voler en éclats"  (J. G. Fichte)

              document.getElementById est-il utile ?

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown