⊗jsSpStGWD 43 of 294 menu

DOM-elementen verkrijgen zonder duplicaten

Stel we hebben paragrafen en een knop:

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

Stel dat de gebruiker op deze paragrafen klikt in willekeurige volgorde. Laten we ervoor zorgen dat er bij het indrukken van de knop aan het einde van elke paragraaf waarop is geklikt, een uitroepteken wordt toegevoegd. Laten we het probleem oplossen via Set.

Laten we beginnen. Laten we eerst onze elementen in variabelen verkrijgen:

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

Laten we een nieuwe Set collectie aanmaken:

let set = new Set;

Laten we de paragrafen doorlopen met een lus en er een click event handler op plaatsen:

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

Laten we nu bij een klik op een paragraaf deze paragraaf toevoegen aan de collectie:

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

Omdat we de Set collectie gebruiken, zal een herhaalde klik op een paragraaf niet leiden tot het toevoegen van een duplicaat van de paragraaf.

Laten we nu bij een klik op de knop de inhoud van onze collectie doorlopen en aan elke paragraaf aan het einde een uitroepteken toevoegen:

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

Er worden paragrafen en een knop gegeven. De gebruiker klikt op deze paragrafen in willekeurige volgorde. Zorg ervoor dat bij het indrukken van de knop aan het einde van elke paragraaf waarop is geklikt, een uitroepteken wordt toegevoegd.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren