Simplifier la syntaxe getElementById

Résolu
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 - 29 févr. 2008 à 10:52
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 3 mars 2008 à 20:44
    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

cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 févr. 2008 à 11:16
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]
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 févr. 2008 à 10:57
Bonjour,

    c'est une fonction....

    du style :

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

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 févr. 2008 à 10:59
j'ai oublié un exemple de l'appel....
    NomDeLaFunctionQuiFaitUnGetelementById("id_reçu")  <hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
29 févr. 2008 à 11:01
    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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
29 févr. 2008 à 11:26
Salut, c'est pas prototype qui permet d'écrire comme ça par hasard ?

Si t'a besoin d'aide, MP !!!
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
29 févr. 2008 à 11:30
    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 +
@+
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
29 févr. 2008 à 11:32
    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;
 
      }
0
cs_caviar Messages postés 329 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 29 mars 2015 2
29 févr. 2008 à 11:34
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 févr. 2008 à 11:39
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]
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 févr. 2008 à 11:39
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]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
29 févr. 2008 à 12:23
je croyais que prototype permettait une syntax du genre : $(id).propriété_ou_methode...

Si t'a besoin d'aide, MP !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 févr. 2008 à 12:34
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]
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
29 févr. 2008 à 13:09
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 !!!
0
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
29 févr. 2008 à 13:27
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]
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
3 mars 2008 à 20:44
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)
0
Rejoignez-nous