jQuery Gezinti - closest() Yöntemi
Örnek
Bu örnek, closest() ile olay devrediyi nasıl gerçekleştirdiğini gösterir. En yakın listeleme elementi veya onun alt nesneleri tıklandığında, sarı arka plan değiştirilir:
$( document ).bind("click", function( e ) { $( e.target ).closest("li").toggleClass("hilight"); });
Tanım ve kullanım
.closest() yöntemi, seçiciye sahip ilk ata elementini elde eder, mevcut elementten DOM ağacına doğru yukarı doğru gezinir.
Sözdizimi
.closest(selector)
Parametre | Açıklama |
---|---|
selector | Eşleşen elementin seçici ifadesini içeren bir dizi değer. |
Ayrıntılı açıklama
DOM elementi koleksiyonunu temsil eden bir jQuery nesnesi verildiğinde, .closest() yöntemi, bu elementleri ve ata elementlerini DOM ağacında arar ve bu eşleşen elementlerle yeni bir jQuery nesnesi oluşturur..parents() .closest() yöntemiyle benzer, her ikisi de DOM ağacına doğru yukarı doğru gezinir. Aralarındaki farklar küçük olsa da önemlidir:
.closest() | .parents() |
---|---|
Mevcut elementten başlayarak | Ana elementten başlayarak |
DOM ağacına doğru yukarı doğru gezin, bir seçiciye sahip bir eşleşme bulana kadar. | DOM ağacına doğru yukarı doğru gezin, belgenin kök elemanına kadar, her ata elementi geçici bir koleksiyona ekleyin; bir seçici uygulandığında, bu koleksiyona bu seçiciye göre filtreleme yapılır. |
Sıfır veya bir eleman içeren jQuery nesnesi döndürür | Sıfır, bir veya birden fazla eleman içeren jQuery nesnesi döndürür |
Aşağıdaki HTML parçasına bakın:
<ul id="one" class="level-1"> <li class="item-i">I</li> <li id="ii" class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>
Örnek 1
Project A'dan başlayarak <ul> elementi için bir arama gerçekleştirdiğimiz varsayalım ki:
$('li.item-a').closest('ul').css('background-color', 'red');
Bu, level-2 <ul> rengini değiştirir, çünkü DOM ağacını yukarı doğru tarama sırasında ilk karşılaşılan elementtir.
Örnek 2
Aranan <li> elementi için varsayalım ki:
$('li.item-a').closest('li').css('background-color', 'red');
Bu, list item A'nın rengini değiştirir. .closest() metodu DOM ağacını yukarı doğru taramadan önce li elementinden başlayarak, project A'ya kadar seçiciye kadar arar.
Örnek 3
DOM elementi olarak bir context geçirebilir ve bu context içinde en yakın elementi arayabiliriz.
var listItemII = document.getElementById('ii'); $('li.item-a').closest('ul', listItemII).css('background-color', 'red'); $('li.item-a').closest('#one', listItemII).css('background-color', 'green');
Yukarıdaki kod level-2 <ul> rengini değiştirir çünkü hem list item A'nın ilk <ul> atası hem de list item II'nin soyu olan bir unsurdur. level-1 <ul> rengini değiştirmez çünkü list item II'nin soyu değildir.