jQuery Perulangan - Metode filter()
Contoh
Ubah warna semua div, lalu tambahkan garis ke kelas yang bernama "middle":
$("div").css("background", "#c8ebcc") .filter(".middle") .css("border-color", "red");
Definisi dan penggunaan
Metode filter() akan memotong kumpulan elemen yang cocok menjadi elemen yang cocok dengan selector yang ditentukan.
Sintaks
.filter(selector)
Parameter | Deskripsi |
---|---|
selector | Nilai string, berisi ekspresi selector untuk mencocokkan kumpulan elemen saat ini. |
Keterangan detil
Jika diberikan objek jQuery yang mewakili kumpulan elemen DOM, metode .filter() akan membuat objek jQuery baru yang terdiri dari kumpulan elemen yang cocok. Selector yang digunakan akan menguji setiap elemen; semua elemen yang cocok dengan selector ini akan termasuk dalam hasil.
Berpikir tentang halaman yang memiliki daftar sederhana di bawah ini:
<ul> <li>item daftar 1</li> <li>item daftar 2</li> <li>item daftar 3</li> <li>item daftar 4</li> <li>item daftar 5</li> <li>item daftar 6</li> </ul>
Kami dapat menerapkan metode ini ke koleksi item daftar ini:
$('li').filter(':even').css('background-color', 'red');
Hasil pemanggilan ini adalah mengatur warna latar belakang item 1, 3, 5 menjadi merah, karena mereka semua cocok dengan selector (ingatlah, :even dan :odd menggunakan index dasar 0).
Penggunaan fungsi penyaring
Formulir kedua metode ini adalah melalui fungsi daripada selector untuk menyaring elemen. Untuk setiap elemen, jika fungsi ini mengembalikan true, elemen akan termasuk dalam koleksi yang disaring; sebaliknya, elemen akan dihapus.
Lihat bagian HTML yang sedikit kompleks di bawah ini:
<ul> <li><strong>list</strong> item 1 - one strong tag</li> <li><strong>list</strong> item <strong>2</strong> - two <span>tags strong</span></li> <li>item daftar 3</li> <li>item daftar 4</li> <li>item daftar 5</li> <li>item daftar 6</li> </ul>
Kami dapat memilih item daftar ini dan menyaring mereka berdasarkan konten mereka:
$('li').filter(function(index) { return $('strong', this).length == 1; }).css('background-color', 'red');