jQuery Gezinti - is() Metodu
Örnek
False döner çünkü input elementinin ebeveyni p elementidir:
var isFormParent = $("input[type='checkbox']").parent();.is("form"); $("div").text("isFormParent = " + isFormParent);
Tanım ve Kullanım
is() seçici, element veya jQuery nesnesine dayanarak eşleşen element kümelerini sorgular. Bu elementlerden en az biri belirtilen parametreye eşleşiyorsa true döner.
Gramer
.is(seçici)
Parametre | Açıklama |
---|---|
seçici | Dize değeri, eşleşen elementlerin seçici ifadesi içeren. |
Ayrıntılı Açıklama
Diğer filtreleme yöntemlerinden farklı olarak, .is() yeni bir jQuery nesnesi oluşturmaz. Aksine, jQuery nesnesi içeriğini değiştirmeksizin onu sorgulamamıza olanak tanır. Bu, callback içlerinde genellikle daha faydalıdır, örneğin olay işleyicilerinde.
Örneğin, iki projenin alt elementleri içeren bir liste olduğumuzu varsayalım:
<ul> <li>list <strong>item 1</strong></li> <li><span>list item 2</span></li> <li>list item 3</li> </ul>
Sizin <ul> elementine tıklama işleyicisi ekleyebilir ve ardından kodu sadece liste öğesi,而非 alt öğe, tıklanıldığında tetiklemek için sınırlayabilirsiniz:
$("ul").click(function(event) { var $target = $(event.target); if ( $target.is("li") ) { $target.css("background-color", "red"); } });
Şu anda, kullanıcı 'list' kelimesini ilk liste öğesinde veya üçüncü liste öğesinde herhangi bir kelimeyi tıkladığında, tıklanan liste öğesi kırmızı arka plan olarak ayarlanır. Ancak, kullanıcı ilk liste öğesinde 'item 1' veya ikinci liste öğesinde herhangi bir kelimeyi tıkladığında, herhangi bir değişiklik olmaz, çünkü bu durumda olayın hedefi <strong> <span>dir.
Lütfen dikkat edin, konumsal seçici ifadeleri olan seçici ifadeleri için, örneğin :first, :gt() veya :even, konumsal filtreleme .is() 'e iletilen jQuery nesnesi için,而非 entire document için yapılmaktadır. Bu nedenle, yukarıdaki HTML için, $("li:first").is("li:last") ifadesi true döner, ancak $("li:first-child").is("li:last-child") ifadesi false döner.
Fonksiyon kullanarak
Bu yöntemin ikinci kullanımı, fonksiyon yerine seçiciye dayalı ilgili elementlerin ifadesinin değerlenmesidir. Her element için, fonksiyon true dönerse, .is() de true döner. Örneğin, aşağıdaki daha karmaşık HTML parçası verilmiştir:
<ul> <li><strong>list</strong> item 1 - bir strong etiketi</li> <li><strong>list</strong> item <strong>2</strong> - iki <span>strong etiketi</span></li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul>
Her <li> elementine tıklama işleyicisi ekleyerek, tıklanan <li> içindeki <strong> elementlerin sayısını hesaplayabilirsiniz:
$("li").click(function() { var $li = $(this), isWithTwo = $li.is(function() { return $('strong', this).length === 2; });; if ( isWithTwo ) { $li.css("background-color", "green"); } else { $li.css("background-color", "red"); } });