|
2 | 2 |
|
3 | 3 | Les outils de navigation du DOM sont très pratiques quand les éléments sont proches les uns des autres. Mais s'ils ne le sont pas ? Comment atteindre un élément arbitraire de la page ? |
4 | 4 |
|
5 | | -Il existe d'autres méthodes de recherche pour cela. |
| 5 | +Il existe d'autres méthodes de recherche pour cela. |
6 | 6 |
|
7 | 7 | ## document.getElementById ou juste id |
8 | 8 |
|
@@ -41,7 +41,7 @@ Il y a aussi une variable globale nommée selon l'`id` qui référence l'éléme |
41 | 41 | </script> |
42 | 42 | ``` |
43 | 43 |
|
44 | | -...A moins qu'on déclare une variable Javascript avec le même nom, auquel cas celle-ci obtient la priorité : |
| 44 | +...A moins qu'on déclare une variable JavaScript avec le même nom, auquel cas celle-ci obtient la priorité : |
45 | 45 |
|
46 | 46 | ```html run untrusted height=0 |
47 | 47 | <div id="elem"></div> |
@@ -144,9 +144,9 @@ Les *ancêtres* d'un élément sont : le parent, le parent du parent, son propre |
144 | 144 |
|
145 | 145 | La méthode `elem.closest(css)` cherche l'ancêtre le plus proche qui correspond au sélecteur CSS. L'élément `elem` est lui-même inclus dans la recherche. |
146 | 146 |
|
147 | | -En d'autres mots, la méthode `closest` part de l'élément et remonte en regardant chacun des parents. S'il correspond au sélecteur, la recherche s'arrête et l'ancêtre est renvoyé. |
| 147 | +En d'autres mots, la méthode `closest` part de l'élément et remonte en regardant chacun des parents. S'il correspond au sélecteur, la recherche s'arrête et l'ancêtre est renvoyé. |
148 | 148 |
|
149 | | -Par exemple : |
| 149 | +Par exemple : |
150 | 150 |
|
151 | 151 | ```html run |
152 | 152 | <h1>Contenu</h1> |
@@ -174,15 +174,15 @@ Il y a aussi d'autres méthodes pour rechercher des balises par tag, classe, etc |
174 | 174 |
|
175 | 175 | Aujourd'hui, elles sont principalement de l'histoire ancienne, car `querySelector` est plus puissante et plus courte à écrire. |
176 | 176 |
|
177 | | -Donc ici, on va surtout en parler dans le souci d'être complet, comme elles peuvent encore se retrouver dans des vieux scripts. |
| 177 | +Donc ici, on va surtout en parler dans le souci d'être complet, comme elles peuvent encore se retrouver dans des vieux scripts. |
178 | 178 |
|
179 | 179 | - `elem.getElementsByTagName(tag)` cherche les éléments avec le tag donné et renvoie l'ensemble de ces éléments. Le paramètre `tag` peut aussi être une étoile `"*"` pour signifier n'importe quel tag. |
180 | 180 | - `elem.getElementsByClassName(className)` renvoie les éléments qui ont la classe CSS donnée. |
181 | 181 | - `document.getElementsByName(name)` renvoie les éléments qui ont l'attribut `name`, dans tout le document. Très rarement utilisé. |
182 | 182 |
|
183 | 183 | Par exemple: |
184 | 184 | ```js |
185 | | -// récupérer tous les divs du document. |
| 185 | +// récupérer tous les divs du document. |
186 | 186 | let divs = document.getElementsByTagName('div'); |
187 | 187 | ``` |
188 | 188 |
|
@@ -225,14 +225,14 @@ La lettre `"s"` letter n'apparait pas dans `getElementById`, car cette méthode |
225 | 225 | ``` |
226 | 226 |
|
227 | 227 | ````warn header="Elle renvoie un ensemble, pas un élément !" |
228 | | -Une autre erreur répandue parmi les débutants est d'écrire : |
| 228 | +Une autre erreur répandue parmi les débutants est d'écrire : |
229 | 229 |
|
230 | 230 | ```js |
231 | | -// ne fonctionne pas : |
| 231 | +// ne fonctionne pas : |
232 | 232 | document.getElementsByTagName('input').value = 5; |
233 | 233 | ``` |
234 | 234 |
|
235 | | -Cela ne va pas marcher, parce qu'on essaie d'affecter une valeur à un ensemble d'objets plutôt qu'à un élément de cet ensemble. |
| 235 | +Cela ne va pas marcher, parce qu'on essaie d'affecter une valeur à un ensemble d'objets plutôt qu'à un élément de cet ensemble. |
236 | 236 | On devrait plutôt itérer sur l'ensemble ou récupérer un élément par son index, et lui affecter la valeur, comme ceci : |
237 | 237 |
|
238 | 238 | ```js |
@@ -263,7 +263,7 @@ Recherche des éléments `.article` : |
263 | 263 |
|
264 | 264 | Toutes les méthodes `"getElementsBy*"` renvoient l'ensemble *courant*. De tels ensembles montrent toujours l'état courant du document and se mettent à jour automatiquement quand celui-ci change. |
265 | 265 |
|
266 | | -Dans l'exemple ci-dessous, il y a deux scripts : |
| 266 | +Dans l'exemple ci-dessous, il y a deux scripts : |
267 | 267 |
|
268 | 268 | 1. Le premier crée une référence à l'ensemble des `<div>`. Maintenant, sa longueur est `1`. |
269 | 269 | 2. Le second se lance après que le navigateur aie rencontré un autre `<div>`, donc sa longueur est `2`. |
@@ -311,7 +311,7 @@ Maintenant, on voit facilement la différence. L'ensemble statique ne s'est pas |
311 | 311 |
|
312 | 312 | ## Résumé |
313 | 313 |
|
314 | | -Il y a 6 principales méthodes pour rechercher des balises dans le DOM : |
| 314 | +Il y a 6 principales méthodes pour rechercher des balises dans le DOM : |
315 | 315 |
|
316 | 316 | <table> |
317 | 317 | <thead> |
@@ -362,7 +362,7 @@ Il y a 6 principales méthodes pour rechercher des balises dans le DOM : |
362 | 362 | </tbody> |
363 | 363 | </table> |
364 | 364 |
|
365 | | -De loin, les plus utilisées sont `querySelector` et `querySelectorAll`, mais `getElement(s)By*` peut être de temps en temps utile ou rencontrée dans de vieux scripts. |
| 365 | +De loin, les plus utilisées sont `querySelector` et `querySelectorAll`, mais `getElement(s)By*` peut être de temps en temps utile ou rencontrée dans de vieux scripts. |
366 | 366 |
|
367 | 367 | A part ça : |
368 | 368 |
|
|
0 commit comments