⊗jsPmDmLNH 359 of 505 menu

Adăugarea de manipulatoare în buclă în JavaScript

Să învățăm acum cum să adăugăm în masă manipulatoare de evenimente elementelor. Să presupunem, de exemplu, că avem paragrafe:

<p>text1</p> <p>text2</p> <p>text3</p>

Să presupunem că avem și o funcție:

function func() { console.log('!'); }

Să parcurgem paragrafele noastre în buclă și fiecărui paragraf să-i adăugăm ca manipulator de click funcția func:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', func); }

Să mergem mai departe și să facem astfel încât la click pe orice paragraf să fie afișat textul acelui paragraf. Există, totuși, o problemă: paragrafe sunt multe, iar funcția-manipulator este una singură. Cum să distingem paragrafele noastre în interiorul funcției-manipulator?

În aceasta ne va ajuta obiectul this - la apelarea funcției în momentul evenimentului acest obiect va indica către acel element unde acest eveniment s-a produs. Să modificăm codul funcției noastre func în conformitate cu cele spuse:

function func() { console.log(this.textContent); // afișăm textul paragrafului }

Este dată următoarea funcție:

function func() { this.value = Number(this.value) + 1; }

De asemenea, sunt date input-uri. Faceți astfel încât la pierderea focusului în oricare dintre input-urile noastre să se execute funcția prezentată mai sus.

Sunt date paragrafe cu numere. Faceți astfel încât la click pe orice paragraf numărul din el să fie ridicat la pătrat.

msendehisw