Suppose we have some group of DOM elements:
<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>
Let's make the function forEach
, which will take
the elements group selector as the first parameter,
and the second parameter - a
callback function ,
which will be applied to each of the found elements in turn:
forEach('.elem', function() {
// the function will be applied to each element
});
Let the elements that fall under the selector, in turn, fall into the first parameter of the callback:
forEach('.elem', function(elem) {
console.log(elem); // outputs the found elements one by one
});
Let's use our function to find all elements with the
class elem
and apply a callback for each element
found, which will square the text of each element:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Let's now write the implementation of the
forEach
function:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Given paragraphs. Add an exclamation mark to the end of each paragraph text using the forEach function we created.