Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗jsPmDmLNH 359 of 505 menu

Дадаванне апрацоўшчыкаў у цыкле ў JavaScript

Давайце цяпер навучымся масава дадаваць апрацоўшчыкі падзей элементам. Хай, напрыклад, у нас ёсць абзацы:

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

Хай у нас таксама ёсць функцыя:

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

Давайце перабярэм нашы абзацы ў цыкле і кожнаму абзацу дадамо ў якасці апрацоўшчыка кліка функцыю func:

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

Давайце пойдзем далей і зробім так, каб па кліку на любы абзац вывадзіўся тэкст гэтага абзаца. Ёсць, аднак, праблема: абзацаў шмат, а функцыя-апрацоўшчык адна. Як жа нам адрозніць нашы абзацы ўнутры функцыі-апрацоўшчыка?

У гэтым нам дапаможа аб'ект this - пры выкліку функцыі ў момант падзеі гэты аб'ект будзе паказваць на той элемент, дзе гэтая падзея здарылася. Пераробім код нашай функцыі func у адпаведнасці з сказаным:

function func() { console.log(this.textContent); // выводiм тэкст абзаца }

Дана наступная функцыя:

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

Даны таксама інпуты. Зрабіце так, каб па страце фокусу ў любым з нашых інпутаў выконвалася прыведзеная вышэй функцыя.

Даны абзацы з лікамі. Зрабіце так, каб па кліку на любы абзац яго лік у ім узводзіўся ў квадрат.

byenru