⊗jsSpStGWD 43 of 294 menu

Obținerea elementelor DOM fără duplicate

Să presupunem că avem paragrafe și un buton:

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

Să presupunem că utilizatorul face clic pe aceste paragrafe într-o ordine arbitrară. Să facem astfel, încât la apăsarea butonului la sfârșitul fiecărui paragraf pe care s-a făcut clic, să fie adăugat un semn de exclamare. Să rezolvăm problema prin Set.

Să începem. Pentru început, să obținem elementele noastre în variabile:

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

Să creăm o nouă colecție Set:

let set = new Set;

Să parcurgem paragrafele cu un ciclu și să atașăm pe ele un handler de clic:

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

Să facem acum ca la clic pe paragraf să adăugăm acest paragraf în colecție:

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

Datorită faptului că folosim colecția Set, un clic repetat pe paragraf nu va duce la adăugarea unui duplicat al paragrafului.

Să facem acum ca la clic pe buton să parcurgem conținutul colecției noastre și fiecărui paragraf la sfârșit să adăugăm un semn de exclamare:

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

Sunt date paragrafe și un buton. Utilizatorul face clic pe aceste paragrafe într-o ordine arbitrară. Faceți astfel încât la apăsarea butonului la sfârșitul fiecărui paragraf pe care s-a făcut clic, să fie adăugat un semn de exclamare.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge