JavaScript'те DOM менен иштөө үчүн коллбэк өткөрүү

Бизде белгилүү бир DOM элементтери тобу бар деп коёлу:

html<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 функциясын жасайлы, ал биринчи параметр катары элементтер тобунун селекторун кабыл алат, экинчи параметр катары болсо - табылган ар бир элементке кезек-кезек колдонула турган функция-коллбэк:

javascriptforEach('.elem', function() {
  // функция ар бир элементке колдонулат
});

Селекторго түшкөн элементтер коллбэктин биринчи параметрине кезек-кезек түшсүн деп коёлу:

javascriptforEach('.elem', function(elem) {
  console.log(elem); // табылган элементтерди кезек-кезек чыгарат
});

Келгиле, биздин функциябыздын жардамы менен elem классы бар бардык элементтерди таап, ар бир табылган элемент үчүн колдонула турган коллбэк жасайлы, ал ар бир элементтин текстин квадратка көтөрөт:

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

Келгиле, эми биз ойлоп тапкан forEach функциябыздын ишке ашырылышын жазалы:

javascriptfunction forEach(selector, func) {
  let elems = document.querySelectorAll(selector);
  
  for (let elem of elems) {
    func(elem);
  }
}
Задание 1

Абзацтар берилген. Биз түзгөн forEach функциябыздын жардамы менен ар бир абзацтын текстинин аягына үн белгисин (!) кошуңуз.