# Передача коллбэка для работы с DOM на JavaScript

Пусть у нас есть некоторая группа DOM элементов:

`<p class="elem">1</p> <p class="elem">2</p> <p class="elem">3</p> <p class="elem">4</p> <p class="elem">5</p>`

Давайте сделаем функцию `forEach`, которая первым параметром будет принимать селектор группы элементов, а вторым параметром - функцию-коллбэк, которая применится по очереди к каждому из найденных элементов:

`forEach('.elem', function() { // функция применится к каждому элементу });`

Пусть элементы, попавшие под селектор, по очереди попадают в первый параметр коллбэка:

`forEach('.elem', function(elem) { console.log(elem); // выведет по очереди найденные элементы });`

Давайте с помощью нашей функции найдем все элементы с классом `elem` и для каждого найденного элемента применим коллбэк, который возведет в квадрат текст каждого элемента:

`forEach('.elem', function(elem) { elem.textContent = elem.textContent ** 2; });`

Давайте теперь напишем реализацию задуманной нами функции `forEach`:

`function forEach(selector, func) { let elems = document.querySelectorAll(selector); for (let elem of elems) { func(elem); } }`

Даны абзацы. С помощью созданной нами функции forEach для каждого абзаца добавьте в конец его текста восклицательный знак.

←→
↑
en ru