⊗jsPmDmLNH 359 of 505 menu

Aggiunta di gestori in ciclo in JavaScript

Ora impariamo ad aggiungere in massa i gestori di eventi agli elementi. Supponiamo, ad esempio, di avere dei paragrafi:

<p>testo1</p> <p>testo2</p> <p>testo3</p>

Supponiamo inoltre di avere una funzione:

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

Iteriamo i nostri paragrafi in un ciclo e ad ogni paragrafo aggiungiamo come gestore del click la funzione func:

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

Andiamo oltre e facciamo in modo che cliccando su qualsiasi paragrafo venga visualizzato il testo di quel paragrafo. C'è, tuttavia, un problema: i paragrafi sono molti, ma la funzione gestore è una sola. Come possiamo distinguere i nostri paragrafi all'interno della funzione gestore?

In questo ci aiuta l'oggetto this - quando la funzione viene chiamata al momento dell'evento, questo oggetto punterà all'elemento in cui l'evento si è verificato. Modifichiamo il codice della nostra funzione func in base a quanto detto:

function func() { console.log(this.textContent); // visualizziamo il testo del paragrafo }

Data la seguente funzione:

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

Sono dati anche degli input. Fate in modo che alla perdita del focus in uno qualsiasi dei nostri input venga eseguita la funzione sopra riportata.

Sono dati paragrafi con numeri. Fate in modo che cliccando su qualsiasi paragrafo il numero in esso contenuto venga elevato al quadrato.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta