⊗jsSpStGWD 43 of 294 menu

DOM-Elemente ohne Duplikate abrufen

Nehmen wir an, wir haben Absätze und einen Button:

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

Nehmen wir an, der Benutzer klickt in beliebiger Reihenfolge auf diese Absätze. Lassen Sie uns bewirken, dass beim Klicken auf den Button an das Ende jedes Absatzes, auf den geklickt wurde, ein Ausrufezeichen angehängt wird. Wir lösen die Aufgabe mit Set.

Fangen wir an. Holen wir uns zunächst unsere Elemente in Variablen:

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

Erstellen wir eine neue Set-Sammlung:

let set = new Set;

Durchlaufen wir die Absätze mit einer Schleife und hängen einen Click-Eventhandler an sie:

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

Lassen Sie uns nun bei einem Klick auf einen Absatz diesen Absatz zur Sammlung hinzufügen:

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

Da wir die Set-Sammlung verwenden, wird ein erneuter Klick auf einen Absatz nicht zu einem Duplikat des Absatzes führen.

Lassen Sie uns nun beim Klicken auf den Button den Inhalt unserer Sammlung durchlaufen und an jedes Element ein Ausrufezeichen anhängen:

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

Es sind Absätze und ein Button gegeben. Der Benutzer klickt in beliebiger Reihenfolge auf diese Absätze. Sorgen Sie dafür, dass beim Klicken auf den Button an das Ende jedes Absatzes, auf den geklickt wurde, ein Ausrufezeichen angehängt wird.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen