Kategoriler

jQuery .filter() Metodu

5 yorum

jQuery’de bulunan metodlar içinde en sevdiğimdir. Çünkü büyük ölçüde işimi kolaylaştırıyor.
Örneğin bir nesneyi değişkene aktardım.

var tab = $('.tab li');

Şimdi burada ilk elemanı seçip addClass metodunu uygulamam gerektiğinde bunu filter ile belirtiyorum.

tab.filter(':first').addClass('active');

Böylece değişkenin taşıdığı nesnelerde filtreleme işlemi yapıp ilk elemanı seçmemi sağlıyor.
Tabi sadece ilk eleman için değil :not(), :eq(), this vb. bir çok şey için geçerlidir. Örneğin küçük bir tab uygulaması yapacak olsaydık işimiz çok kısa olacaktı;

var tab = $('.tab li'),
content = $('.tab-content');

content.filter(':not(:first)').hide();
tab.filter(':first').addClass('active').end().on('click', function(e){
    tab.removeClass('active').filter(this).addClass('active');
    content.hide().filter(':eq(' + $(this).index() + ')').show();
    e.preventDefault();
});

Ya da örneğin daha farklı bir örnek verelim;

$('.item').filter(function(index){
    return $( this ).hasClass('boxed');
}).addClass('active');

http://api.jquery.com/filter/

İşte böyle, kolay gelsin 🙂

Yorumlar (5)

Tayfun Erbilen demiş ki;

Normal click te kullanabilirsin. 2. verdiğin örnek jquery'nin eski versiyonlarındaki live metoduna eş değer. Yani sonradan eklenen nesneler için event uygulama olayı.

kalimdor demiş ki;

selam,

on('click') burda neden "on" click kullandık normal "click" niye kullanmadık acaba? "on" olduğu için birde bunun "off" özelliği olduğu için mi kullandın?
birde böyle bir kullanım daha var $("body").on("click","selector",function()

:D

teşekkürler

Cavid demiş ki;

Teşekkürler :)

Tayfun Erbilen demiş ki;

virgül ile sonrasına ekledik, yani kısa halde yazmış olduk.

Cavid demiş ki;

Ders için teşekkürler.
Bir sorum olacak.

var tab = $('.tab li'),
content = $('.tab-content');

Burada contentin başında var olması gerekmiyormu?

Yorum Gönder