16/12/09

Sélectionner les éléments par leur classe avec getElementsByClassName

Vous le savez sans doute, mais si le DOM propose une fonction pour sélectionner un élément par son id ou son nom, ce n’est pas (encore) le cas pour sélectionner les éléments qui partagent une ou plusieurs classes. C’est là qu’intervient The Ultimate GetElementsByClassName déjà évoqué dans Utillisez le DOM et Javascript comme un chef pour redéfinir le comportement des balises HTML.

Quelques exemples d’utilisation :

- getElementsByClassName("info-links"); — tous les éléments avec la classe info-links,
- getElementsByClassName("col", "div", document.getElementById("container")); — tous les éléments `div` contenus dans `#container` et possédant la classe col,
- getElementsByClassName("pince-me pince-moi"); — tous les éléments avec les classes pince-me et pince-moi.



2 commentaires pour “Sélectionner les éléments par leur classe avec getElementsByClassName”

  1. Shonagon dit :

    AMHA, l’utilité de la chose est surtout à chercher du côté de l’optimisation ou , parce tous les principaux framework JS gèrent très bien cela en mode simple. Encore un problème réglé.

    Ca me rappelle surtout des vieux souvenirs et la surprise de tout développeur Javascript de ne pas avoir de getElementsByClass alors que le GetElementsById est (était ?) extrêmement utile.

    Ce genre de fonctions peuvent aussi être utiles pour avoir un bon cas pratique de manipulation du DOM en JS. On dit souvent qu’il ne faut pas réinventer la roue mais parfois c’est utile de se pencher sur comment on fabrique des roues. En d’autres termes n’importe quel développeur doit toujours tôt ou tard au moins une fois réinventer une roue. Parce que ça permet de développer exactement ce que l’on souhaite sans se limiter à un framework et/ou à ses modules. Ca permet aussi indirectement d’approfondir ses compétences et de s’améliorer.

  2. Anonyme dit :

    Je me réjouissez de voir cette fonction,
    Jusqu’a voir que celle-ci ne fonctionner pas ….

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 ! »