Získavanie DOM elementov bez duplikátov

Majme nasledujúce odseky a tlačidlo:

html<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
<p>ddd</p>
<p>eee</p>

<button>click me</button>

Používateľ kliká na tieto odseky v ľubovoľnom poradí. Po kliknutí na tlačidlo pridajte na koniec každého odseku, na ktorý bolo kliknuté, výkričník. Úlohu vyriešime pomocou Set.

Poďme na to. Najprv získame naše elementy do premenných:

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

Vytvorme novú kolekciu Set:

javascriptlet set = new Set;

Prejdeme odseky cyklom a pridáme im obsluhu kliknutia:

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

Po kliknutí na odsek pridáme tento odsek do kolekcie:

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

Vďaka tomu, že používame kolekciu Set, opakované kliknutie na odsek nepovedie k pridaniu duplikátu odseku.

Po kliknutí na tlačidlo prejdeme obsah našej kolekcie a každému odseku na koniec pridáme výkričník:

javascriptbutton.addEventListener('click', function() {
  for (let elem of set) {
    elem.textContent = elem.textContent + '!';
  }
});
Задание 1

Sú dané odseky a tlačidlo. Používateľ kliká na tieto odseky v ľubovoľnom poradí. Zabezpečte, aby po kliknutí na tlačidlo na koniec každého odseku, na ktorý bolo kliknuté, bol pridaný výkričník.