jQuery dolaşma - end() yöntemi
Örnek
Bütün paragrafları seçin, bu paragraflardaki span elemanlarını bulun, ardından bunları paragraflara döndürün ve paragrafları iki piksel kalınlığındaki kırmızı çerçeve ile ayarlayın:
$("p").find("span").end().css("border", "2px red solid");
Tanım ve kullanım
end() yöntemi, mevcut zincirdeki en yakın filtreleme işlemi sonunu belirler ve eşleşen eleman kümesini önceki duruma döndürür.
Sözdizimi
.end()
Ayrıntılı açıklama
Çoğu jQuery dolaşma yöntemi bir jQuery nesne örneğini işlemek ve farklı DOM elemanı kümesini eşleyen yeni bir nesne oluşturur. Bu tür bir durumda, yeni eleman kümesi nesne içindeki yığının içine itilmelidir. Her başarılı filtreleme yöntemi çağrısı yeni elemanı yığına itir. Eski eleman kümesini almak için yığının içinden yeni kümesini çıkarmak için end() kullanabiliriz.
Sayfada bir çift kısa liste olduğunu varsayalım:
<ul class="first"> <li class="foo">list item 1</li> <li>list item 2</li> <li class="bar">list item 3</li> </ul> <ul class="second"> <li class="foo">list item 1</li> <li>list item 2</li> <li class="bar">list item 3</li> </ul>
Örnek 1
Genellikle jQuery zincir özelliğini (komut zinciri) kullanırken, jQuery daha faydalı olabilir. Komut zincirini kullanmazsak, genellikle önceki nesneyi değişken adı ile çağırırız, bu şekilde yığın işlemlerini gerçekleştirmek zorunda kalmayız. Ancak, end() ile tüm yöntem çağrılarını bir araya getirebiliriz:
$('ul.first').find('.foo').css('background-color', 'red') .end().find('.bar').css('background-color', 'green');
Bu komut zinciri, ilk listedeki foo adlı sınıfa sahip projeleri arar ve arka planlarını kırmızıya ayarlar. end(), nesneyi find() çağrısından önceki duruma döndürdüğü için, ikinci find(), <ul class="first"> içindeki '.bar'而不是在列表的 <li class="foo"> içinde arar ve eşleşen elemanların arka planını yeşile ayarlar. Sonuç olarak, ilk listedeki 1 ve 3 numaralı projeler renkli arka plana sahiptir ve ikinci listedeki projelerde herhangi bir değişiklik yoktur.
Örnek 2
Bu uzun jQuery zinciri, yapılandırılmış kod bloklarına görselleştirilebilir, iç içe kod bloklarını açmak için filtreleme yöntemi kullanılırken, end() yöntemi kod bloklarını kapatmak için kullanılır:
$('ul.first').find('.foo') .css('background-color', 'red') .end().find('.bar') .css('background-color', 'green') .end();
Sonunda bu end() zorunlu değil, çünkü bu sonraki jQuery nesnesini atıyoruz. Ancak, bu şekilde kod yazıyorsanız, end() görsel olarak simetri sağlar ve programın düzenlenmiş hissini verir, en azından geliştiriciler için daha okunabilir hale gelir, tabii ki ekstra çağrıları nedeniyle biraz performans kaybı vardır.