jQuery Gezinti - filter() Metodu
Örnek
Tüm div'lerin rengini değiştir ve "middle" adlı sınıfa çerçeve ekle:
$("div").css("background", "#c8ebcc") .filter(".middle") .css("border-color", "red");
Tanım ve Kullanım
filter() yöntemi, element koleksiyonunu belirli bir seçiciye uygun olan elementlere indirir.
Sözdizimi
.filter(selector)
Parametre | Tanım |
---|---|
selector | Match edecek mevcut element koleksiyonunu belirleyen seçici ifadesi içeren bir dizi karakter. |
Ayrıntılı Açıklama
Bir jQuery nesnesi, DOM element koleksiyonunu temsil eden .filter() yöntemi, yeni bir jQuery nesnesi oluşturmak için seçiciye uygun elementlerin alt kümelerini kullanır. Kullanılan seçici her elementi test eder; seçiciye uygun olan tüm elementler sonuçta içerilir.
Aşağıdaki basit bir listeye sahip olan bir sayfanın altını çizin:
<ul> <li>listeleme madde 1</li> <li>listeleme madde 2</li> <li>listeleme madde 3</li> <li>listeleme madde 4</li> <li>listeleme madde 5</li> <li>listeleme madde 6</li> </ul>
Bu liste maddeleri koleksiyonuna bu yöntemi uygulayabiliriz:
$('li').filter(':even').css('background-color', 'red');
Bu çağrının sonucu, 1, 3, 5 numaralı projelerin arka planını kırmızıya ayarlama işlemidir, çünkü hepsi seçiciye uygundur (hatırlayın, :even ve :odd 0 bazlı index kullanır).
Filtreleme fonksiyonu
Bu yöntemin ikinci formu, elementleri filtrelemek için fonksiyon yerine seçici kullanmaktır. Her element için, fonksiyon true döndüğü takdirde element, filtrelenmiş koleksiyona dahil edilir; aksi takdirde bu element dışlanır.
Aşağıdaki biraz daha karmaşık HTML parçasına göz atın:
<ul> <li><strong>listeleme</strong> madde 1 - bir strong etiketi</li> <li><strong>listeleme</strong> madde <strong>2</strong> - iki <span>strong etiketi</span></li> <li>listeleme madde 3</li> <li>listeleme madde 4</li> <li>listeleme madde 5</li> <li>listeleme madde 6</li> </ul>
Bu listeleme maddelerini seçebilir ve içeriklerine göre filtreleyebiliriz:
$('li').filter(function(index) { return $('strong', this).length == 1; }).css('background-color', 'red');