Dobijanje DOM elemenata bez duplikata
Neka imamo paragrafe i dugme:
<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
<p>ddd</p>
<p>eee</p>
<button>click me</button>
Neka korisnik klikne na ove paragrafe
proizvoljnim redosledom. Hajde da napravimo
tako da na klik dugmeta na kraj svakog
paragrafa, na koji je izvršen klik, bude
dodat uzvičnik. Rešimo zadatak
preko Set.
Počnimo. Za početak, dobijmo naše elemente u promenljive:
let button = document.querySelector('button');
let elems = document.querySelectorAll('p');
Napravimo novu kolekciju Set:
let set = new Set;
Prođimo kroz paragrafe petljom i postavimo na njih rukovaoc klika:
for (let elem of elems) {
elem.addEventListener('click', function() {
});
}
Hajde da sada na klik paragrafa dodajemo taj paragraf u kolekciju:
for (let elem of elems) {
elem.addEventListener('click', function() {
set.add(this);
});
}
Zbog toga što koristimo kolekciju Set
ponovljeni klik na paragraf neće dovesti
do dodavanja duplikata paragrafa.
Hajde da sada na klik dugmeta prođemo kroz sadržaj naše kolekcije i svakom paragrafu na kraj dodamo uzvičnik:
button.addEventListener('click', function() {
for (let elem of set) {
elem.textContent = elem.textContent + '!';
}
});
Data su paragrafi i dugme. Korisnik klikće na ove paragrafe proizvoljnim redosledom. Učinite tako da na pritisak dugmeta na kraju svakog paragrafa, na koji je izvršen klik, bude dodat uzvičnik.