18/08/10

Chérie, j’ai rétréci document.getElementById

Une petite astuce toute  simple mais néanmoins efficace pour simplifier l’accès aux identifiants CSS à la manière de jQuery.

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

Simple, mais il fallait y penser !



15 commentaires pour “Chérie, j’ai rétréci document.getElementById”

  1. Gpenverne dit :

    Effectivement, simple et efficace :) Ceci dit cela ne sert à rien puisque prototype et jquery le font également. Mais pour « alléger » ces libraires (et, pourquoi pas, s’en passer ?), ce peut être pratique :)

  2. Bruno Bichet dit :

    @Gpenverne Je suis convaincu qu’il existe plein de cas où il n’est pas forcément utile d’utiliser un framework comme jQuery. C’est là que ce genre d’astucinettes peut être utile ;)

  3. Gpenverne dit :

    Disons que ces libraires sont lourdes, donc effectivement :)

  4. [...] This post was mentioned on Twitter by bb (css4design), br1o les bons tuyaux and Veille Web Rennes, willy Bahuaud. willy Bahuaud said: RT @br1o: Chérie, j’ai rétréci document.getElementById http://bit.ly/bUI7Rt [...]

  5. Nico dit :

    Héhéhé, un petit truc tout simple mais génial ! :)

  6. HTeuMeuLeu dit :

    Très bonne idée, et ça évite d’inclure tout un framework pour des mini-projets. Par contre, si je puis permettre, ce serait plus joli avec « id » (voire « elementId ») comme nom de paramètre. « element« , très utilisé dans les fonctions jQuery ou Mootools, me laisse penser qu’on pourrait passer en paramètre un élément du DOM, ce qui n’est pas le but ici.

  7. imer dit :

    Et si Javascript est désactivé? Que se passe-t-il?

  8. FGRibreau dit :

    Ou sinon :

    function $( sel ) { return document.querySelectorAll(sel); }

    querySelectorAll est disponible sur IE8+, FF3.5+, Safari, Chrome, Opera.

    Ou (avec un fallback sur le getElementById) function $( sel ) { return document.querySelectorAll(sel) || document.getElementById(sel); }

    L’avantage est qu’ici il est possible d’utiliser de vrais sélecteurs CSS.

  9. HTeuMeuLeu dit :

    Sympa ta proposition (même si du coup on se prive d’IE6 et 7). Ce qui serait intéressant, ce serait de s’en servir pour une deuxième fonction $$(selector), comme sous Mootools par exemple.

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

    function $$(selector) { return document.querySelectorAll(selector); }

  10. [...] This post was mentioned on Twitter by François-G. Ribreau, François-G. Ribreau. François-G. Ribreau said: @HTeuMeuLeu sympa ton lien vers @br1o je viens de proposer une petite amélioration : http://bit.ly/94xlYj [...]

  11. Bonne petite astuce! C’est vrai que moi qui suis habitué a inclure jQuery pour tous mes projets parce que je me débrouille mieux en utilisant un framework Javascript, je ne pense pas à faire appel directement aux fonctions natives de JS qui sont beaucoup moins lourdes dans certain cas.

  12. math dit :

    Bonjour, En meme temps Jquery on l’utilise vraiment pas que pour les selecteurs.

  13. Jeff dit :

    je suis plutôt adepte des frameworks, qui permettent tout de même de gagner du temps. Les versions minimisées allège un peu en plus.

    Mais bien sûr, suivant les projets, il peut être utile de tout coder soi même si le besoin est faible, et cette technique peut faire gagner pas mal de temps !!

    Merci, c’est tout bête mais il fallait y penser

  14. marts dit :

    Commentaire un peu tardif… On peut écrire ceci + simplement : $=document.getElementById;

  15. giovo dit :

    INUTILE ….

    Avant on pouvait dire que c’était lourd…

    Maintenant on peut charger les fichiers JS de Jquery via les api Google Code…

Laissez un commentaire

Vous pouvez utiliser les balises HTML suivantes : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Les commentaires sont publiés sous votre pleine et entière responsabilité et ne doivent pas contrevenir aux lois et règlementations en vigueur. Les propos racistes ou antisémites, diffamatoire ou injurieux, divulguant des informations fausses, relatives à la vie privée d'une personne ou utilisant des oeuvres protégées par les droits d'auteurs ne sont pas les bienvenus et seront modérés sans modération.

Merci d'être constructif et n'oubliez pas : « sans la liberté de ramer il n'est point d'éloge flotteur ! »

Subscribe without commenting