Simplifier la syntaxe getElementById [Résolu]

cs_caviar 329 Messages postés samedi 4 janvier 2003Date d'inscription 29 mars 2015 Dernière intervention - 29 févr. 2008 à 10:52 - Dernière réponse : PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention
- 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 ?
Afficher la suite 

Votre réponse

15 réponses

cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 29 févr. 2008 à 11:16
+3
Utile
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]
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 29 févr. 2008 à 10:57
0
Utile
Bonjour,

    c'est une fonction....

    du style :

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

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 29 févr. 2008 à 10:59
0
Utile
j'ai oublié un exemple de l'appel....
    NomDeLaFunctionQuiFaitUnGetelementById("id_reçu")  <hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Commenter la réponse de cs_bultez
cs_caviar 329 Messages postés samedi 4 janvier 2003Date d'inscription 29 mars 2015 Dernière intervention - 29 févr. 2008 à 11:01
0
Utile
    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 ?
Commenter la réponse de cs_caviar
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 29 févr. 2008 à 11:26
0
Utile
Salut, c'est pas prototype qui permet d'écrire comme ça par hasard ?

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

Si t'a besoin d'aide, MP !!!
Commenter la réponse de nicomilville
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 29 févr. 2008 à 12:34
0
Utile
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]
Commenter la réponse de cs_bultez
nicomilville 3498 Messages postés lundi 16 juillet 2007Date d'inscription 28 février 2014 Dernière intervention - 29 févr. 2008 à 13:09
0
Utile
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 !!!
Commenter la réponse de nicomilville
cs_bultez 13619 Messages postés jeudi 13 février 2003Date d'inscription 15 octobre 2013 Dernière intervention - 29 févr. 2008 à 13:27
0
Utile
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]
Commenter la réponse de cs_bultez
PetoleTeam 3435 Messages postés lundi 26 décembre 2005Date d'inscription 14 janvier 2011 Dernière intervention - 3 mars 2008 à 20:44
0
Utile
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)
Commenter la réponse de PetoleTeam

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.