Simplifier la syntaxe getElementById

[Résolu]
Signaler
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
    Saluté ...
j'avais vu une fois sur le net (mais je ne retrouve plus où) un article proposant une petite fonction JS permettant d'écrire

${'monIdElement'} à la place de
window.document.getElementById('monIdElement') ;

je trouve ça vraiment super pratique en fait et j'aimerai l'utiliser aujourd'hui ... sauf que ... je suis bien incapable d'écrire la classe (ou fonction je sais pas) qui comprenne cette syntaxe ...

vous auriez la possibilité de m'aider ?

15 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
ben... j'ai tenté de faire de l'humour....
    et si tu appelles ta fonction $, ça fait quoi ?

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

    remarque que je préfère §("une_id")

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

    c'est une fonction....

    du style :

function NomDeLaFunctionQuiFaitUnGetelementById(repere) 
{    return document.getElementById(repere);    }

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
j'ai oublié un exemple de l'appel....
    NomDeLaFunctionQuiFaitUnGetelementById("id_reçu")  <hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
    saluté :)
oui une fonction comme ça je sais l'écrire ...mais là c'est l'idée d'utiliser une syntaxe avec dollar accolade (semblable à php) sui me plait bien ... et ça j'imagine que ça passe par des éval...

d'autant plus que dans son code on pouvait l'utiliser comme ça par exemple

${'monIdElement'}.style.display = 'none' ;

quand même c'est la classe ça non ?
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
Salut, c'est pas prototype qui permet d'écrire comme ça par hasard ?

Si t'a besoin d'aide, MP !!!
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
    mdr ... euuh  bon ... comment dire ...
j'me sent un peu con là ... j'aurai pu tester avant de demander sur ce coup là... mais ça me semblait un truc plus complexe dans son exemple au mec ... p'tet ça permettait d'autres choses :) lol
merci à toi une fois de +
@+
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
    j'ai trouvé cette fonction entre tps... c'est quoi la différence ?
      function $() {

          var elements = new Array();
   
          for (var i = 0; i < arguments.length; i++) {
   
          var element = arguments[i];
   
          if (typeof element == 'string')
   
          element = document.getElementById(element);
   
          if (arguments.length == 1)
   
          return element;
   
          elements.push(element);

      }

      return elements;
 
      }
Messages postés
329
Date d'inscription
samedi 4 janvier 2003
Statut
Membre
Dernière intervention
29 mars 2015
3
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
caviar :   tu peux passer plusieurs ID à la fonction, elle te retourne un array
              vois pas trop l'intérêt... ( quoi que .... )

nivomilville : prototype c'est du style
    String.prototype   Array.prototype...   ça me semble inutile ici ( quoique ... )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
caviar :   tu peux passer plusieurs ID à la fonction, elle te retourne un array
              vois pas trop l'intérêt... ( quoi que .... )

nivomilville : prototype c'est du style
    String.prototype   Array.prototype...   ça me semble inutile ici ( quoique ... )

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
je croyais que prototype permettait une syntax du genre : $(id).propriété_ou_methode...

Si t'a besoin d'aide, MP !!!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
euh...

    string ou autre.prototype.propriété_ou_méthode   ça oui
    mais $(id)   ?   je ne vois pas...      tu penses à quoi ?

        remarque que je suis loin d'être un spécialiste.
        les syntaxes  parfois ahurissantes du javascript ( même s'il extraordinairement puissant,
            et beaucoup plus que beaucoup ne l'imaginent ) me laissent souvent pantois...

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
35
Je ne sais pas mais je suis en train de lire un livre sur ajax et j'en suis au chapitre découvrez la puissance de prototype et j'ai vu cette syntax, après je peut me tromper !!
Mais ça dit dans ce chapitre que la bibliotèque prototype permet de taper ceci : $(id)... au lieux de faire un : document.getElementById(id)...

Si t'a besoin d'aide, MP !!!
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
ah... tu parles du "framework" prototype... !
( quand on dis framework, ça me laisse réveur,
    sans juger de l'excellence des functions, réelles celle-ci !!! )
regarde/recherche dans leur .js la     function $....
    je parierais bien qu'elle existe et que ça fait comme l'exemple donné.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour,

le $ permet de taper...en lieu et place de document.getElementById...
le fait d'écrire $(id_objet) fait appel à la fonction $, qui doit donc être définie et qui pourrait faire n'importe quoi d'autre, mais cela demeure un appel à une fonction, certes c'est plus rapide, à écrire, mais plus gourmand en temps, certes cela reste minime.

J'ai même surpris des sources ou cela est tellement simple que l'on en trouve pléthore au lieu d'écrire un simple
var o = document.getElementById( id_objet);
et ensuite d'utiliser o, ce qui aussi rapide à l'écriture et plus rapide à l'exécution.

En autre rien n'empêche à l'écriture du script d'écrire $ et de faire un rechercher remplacer en final.

Ah mais ou est donc le define du C en javascript...

;O)