⊗jqBsEM 30 of 113 menu

Làm việc với phương thức each trong jQuery

Khi chúng ta có một nhóm các phần tử thu được bằng jQuery, chúng ta chỉ có thể thay đổi chúng cho tất cả các phần tử cùng một lúc.

Ví dụ, nếu chúng ta muốn thay đổi văn bản của tất cả các đoạn văn được tìm thấy - chúng ta sẽ không thể làm cho chúng khác nhau.

Trong trường hợp này, phương thức đặc biệt each sẽ giúp chúng ta, phương thức này cho phép áp dụng một hàm nào đó cho tất cả các phần tử của một tập hợp jQuery. Đồng thời, bên trong hàm này chúng ta có thể phân biệt các phần tử và xử lý khác nhau với từng phần tử trong số chúng.

Về bản chất each là một vòng lặp, với sự trợ giúp của nó có thể lặp qua tất cả các phần tử được tìm thấy. Tham chiếu đến phần tử mà vòng lặp đang thực hiện sẽ nằm trong this.

Chúng ta có thể chỉ đơn giản sử dụng this này trong JavaScript thuần như chúng ta đã làm trước đây, ví dụ, như thế này - this.innerHTML - và hiển thị nội dung bên trong của các phần tử của chúng ta. Nhưng tốt hơn là bọc this trong ký hiệu dollar jQuery như thế này - $(this) - trong trường hợp này chúng ta có thể áp dụng cho nó tất cả các phương thức và chuỗi jQuery.

Hãy xem xét mã HTML sau:

<p class="www">text</p> <p class="www">text</p> <p class="www">text</p> <p>text</p>

Trong ví dụ này, chúng ta phải lấy tất cả các phần tử có lớp www và hiển thị trên màn hình nội dung của chúng. Cách thực hiện: với sự trợ giúp của $('.www') chúng ta lấy các phần tử cần thiết, sau đó với sự trợ giúp của each(test) chúng ta áp dụng hàm test cho mỗi phần tử thu được. Đầu tiên nó sẽ được áp dụng cho đoạn văn đầu tiên, sau đó đến đoạn văn thứ hai, thứ ba và cứ thế.

Bên trong hàm, this sẽ trỏ đến phần tử mà hàm test đang được áp dụng - đầu tiên sẽ là phần tử đầu tiên, sau đó là phần tử thứ hai, và cứ thế. Với cấu trúc $(this) như vậy, thay vì this thông thường từ JavaScript, chúng ta sẽ nhận được phần tử jQuery và áp dụng phương thức html cho nó, phương thức này sẽ lấy văn bản của phần tử của chúng ta. Sau đó, nó sẽ được hiển thị trên màn hình:

/* Chúng ta viết tên hàm test không có dấu nháy và (), vì chúng ta cần mã của nó, chứ không phải kết quả: */ $('.www').each(test); function test() { alert($(this).html()); }

Để giải quyết nhiệm vụ này, cũng có thể sử dụng các hàm ẩn danh - điều này thường được làm hơn:

$('.www').each(function() { alert($(this).html()); });

Chúng ta cũng có thể truyền cho phương thức each một hàm callback với các tham số.

Hãy trong ví dụ tiếp theo thêm vào cuối tất cả các li trên trang số thứ tự của chúng. Bây giờ vào hàm ẩn danh của chúng ta, chúng ta sẽ truyền số thứ tự của phần tử và chính phần tử đó:

$('li').each(function (index, elem) { $(elem).append(index); });

Và bây giờ thay vì elem, hãy sử dụng this:

$('li').each(function (index) { $(this).append(index); });

Hãy thay đổi nội dung của tất cả các li thành số thứ tự của chúng.

Tiếng Việt
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbek
Chúng tôi sử dụng cookie để vận hành trang web, phân tích và cá nhân hóa. Việc xử lý dữ liệu được thực hiện tuân theo Chính sách bảo mật.
chấp nhận tất cả tùy chỉnh từ chối