QuerySelectorAll()
querySelectorAll()
permet d'effectuer une recherche dans un élément du DOM et retourne un NodeList (similaire à un tableau) correspondant au sélecteur lui étant passé. Si aucun élément n'est trouvé, il retourne un NodeList vide []
.
Par exemple dans le code HTML suivant:
<div class="game">Halo</div>
<div class="game">Resident Evil</div>
<div class="game">Hitman</div>
Si une requête est effectué afin de trouver les éléments possédant la classe .game
let gamesArr = document.querySelectorAll('.game');
La NodeList suivante est retournée:
NodeList(3) [div.game, div.game, div.game]
Anatomie
Décortiquons les parties composant cette requête.
let gamesArr
Le résultat de la requête est stocké dans une variable afin de pouvoir y accéder plus tard.
document
Correspond à l'élément dans laquelle la recherche doit être effectuée.
Dans cet exemple, la recherche s'effectue à partir du document en entier. Il aurait possible d'être plus précis en partant d'un élément moins global. Par exemple, effectuer un recherche à partir d'une variable contenant un élément retourné par une requête querySelector().
featuredGames.documentQuerySelectorAll('.game');
querySelectorAll('.game')
Indique qu'un ou plusieurs éléments ayant la classe .game
doivent-être trouvés à l'intérieur de l'élément précédent (document
).
Heureusement, tous les sélecteurs CSS sont supportés par querySelectorAll()
. Il est donc possible d'utiliser les mêmes sélecteurs en CSS qu'en JavaScript ✨.