Phương thức filter
Phương thức filter chỉ giữ lại trong tập hợp những
phần tử thỏa mãn
một bộ chọn nhất định.
Cú pháp
Lọc theo bộ chọn:
.filter(bộ chọn);
Tham số cũng có thể là các phần tử DOM hoặc đối tượng jQuery:
.filter(Phần tử DOM hoặc đối tượng jQuery);
Cũng có thể lọc các phần tử bằng cách sử dụng
một hàm, được gọi riêng cho
mỗi phần tử trong số các phần tử đã chọn. Nếu nó
trả về true, thì phần tử hiện tại sẽ
được đưa vào kết quả cuối cùng, nếu false
- sẽ không được đưa vào. Bản thân các phần tử có thể truy cập được trong hàm,
trong biến this, còn số thứ tự của chúng
trong tập hợp — trong biến index:
.filter(function(index, elem))
Ví dụ
Hãy tìm tất cả các đoạn văn, đặt ở
đầu chúng văn bản '!' bằng cách sử dụng
prepend,
sau đó từ các phần tử tìm được chỉ lấy các đoạn văn
có lớp www bằng cách sử dụng filter
và đặt ở cuối chúng văn bản '?' bằng cách sử dụng
append:
<p>văn bản</p>
<p>văn bản</p>
<p class="www">văn bản</p>
<p class="www">văn bản</p>
$('p').prepend('!').filter('.www').append('?');
Mã HTML sẽ trở thành như thế này:
<p>!văn bản</p>
<p>!văn bản</p>
<p class="www">!văn bản?</p>
<p class="www">!văn bản?</p>
Ví dụ
Hãy sử dụng hàm để tìm tất cả
các đoạn văn có chứa thẻ
strong
và đặt cho chúng văn bản '!!!':
<p><strong>văn bản</strong></p>
<p><strong>văn bản</strong></p>
<p>văn bản</p>
<p>văn bản</p>
$('p').filter(function() {
return $('strong', this).length === 1;
}).html('!!!');
Mã HTML sẽ trở thành như thế này:
<p>!!!</p>
<p>!!!</p>
<p>văn bản</p>
<p>văn bản</p>