Truyền Callback để Làm việc với DOM trong JavaScript
Giả sử chúng ta có một nhóm các phần tử 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>
Hãy tạo một hàm forEach, với
tham số đầu tiên nhận một bộ chọn (selector)
cho nhóm phần tử, và tham số thứ hai - một hàm callback,
sẽ được áp dụng lần lượt cho mỗi phần tử
được tìm thấy:
forEach('.elem', function() {
// hàm sẽ được áp dụng cho từng phần tử
});
Giả sử các phần tử khớp với bộ chọn, lần lượt được đưa vào tham số đầu tiên của callback:
forEach('.elem', function(elem) {
console.log(elem); // sẽ in ra lần lượt các phần tử tìm thấy
});
Hãy sử dụng hàm của chúng ta để tìm tất cả
các phần tử có lớp elem và với mỗi
phần tử tìm thấy, áp dụng một callback
bình phương nội dung văn bản của mỗi phần tử:
forEach('.elem', function(elem) {
elem.textContent = elem.textContent ** 2;
});
Bây giờ hãy viết phần triển khai cho hàm
forEach mà chúng ta đã nghĩ ra:
function forEach(selector, func) {
let elems = document.querySelectorAll(selector);
for (let elem of elems) {
func(elem);
}
}
Cho các đoạn văn. Sử dụng hàm forEach do chúng ta tạo, hãy thêm dấu chấm than vào cuối văn bản của mỗi đoạn văn.