⊗jsSpStGWD 43 of 294 menu

Obtention d'éléments DOM sans doublons

Supposons que nous ayons des paragraphes et un bouton :

<p>aaa</p> <p>bbb</p> <p>ccc</p> <p>ddd</p> <p>eee</p> <button>click me</button>

Supposons que l'utilisateur clique sur ces paragraphes dans un ordre arbitraire. Faisons en sorte qu'en cliquant sur le bouton, à la fin de chaque paragraphe sur lequel un clic a été effectué, un point d'exclamation soit ajouté. Résolvons le problème via Set.

Commençons. Pour commencer, mettons nos éléments dans des variables :

let button = document.querySelector('button'); let elems = document.querySelectorAll('p');

Créons une nouvelle collection Set :

let set = new Set;

Parcourons les paragraphes avec une boucle et attachons-leur un gestionnaire de clic :

for (let elem of elems) { elem.addEventListener('click', function() { }); }

Maintenant, lors d'un clic sur un paragraphe, ajoutons ce paragraphe à la collection :

for (let elem of elems) { elem.addEventListener('click', function() { set.add(this); }); }

Grâce au fait que nous utilisons la collection Set, un nouveau clic sur le paragraphe ne conduira pas à l'ajout d'un doublon du paragraphe.

Maintenant, lors d'un clic sur le bouton, parcourons le contenu de notre collection et ajoutons à chaque paragraphe un point d'exclamation à la fin :

button.addEventListener('click', function() { for (let elem of set) { elem.textContent = elem.textContent + '!'; } });

Des paragraphes et un bouton sont donnés. L'utilisateur clique sur ces paragraphes dans un ordre arbitraire. Faites en sorte qu'en cliquant sur le bouton, à la fin de chaque paragraphe sur lequel un clic a été effectué, un point d'exclamation soit ajouté.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser