Bir div'in belirli bir sınıfta çocuğu olup olmadığını görmek için jQuery'yi kullanma


114

Sınıfla #popupbirlikte birkaç paragrafla dinamik olarak doldurulmuş bir div'im var .filled-text. JQuery'nin #popupiçinde bu paragraflardan birinin olup olmadığını bana söylemesini sağlamaya çalışıyorum .

Bu koda sahibim:

$("#text-field").keydown(function(event) {
    if($('#popup').has('p.filled-text')) {
        console.log("Found");
     }
});

Baska öneri?


1
Sadece bir çocuk mu arıyorsunuz yoksa herhangi bir soyundan mı geliyorsunuz (çocuk, torun, torun, vb.). Soru başlığı şu anda "çocuk" diyor, ancak cevaplar keyfi torunlardan bahsediyor gibi görünüyor.
hippietrail

O zamanlar özellikle bir çocuğu aradığımı sanıyordum, ancak bu soru neredeyse 4 yaşında olduğu için kesin olarak hatırlamak zor. Her iki durumda da, soru ve cevap hem çocukları hem de torunları kapsar ve ayrıca torunları değil, özellikle çocukları kapsayan cevaplar da vardır, bu yüzden neye ulaşmaya çalıştığınızdan emin değilim.
Samsquanch

Oh, sadece bir arama motorunu kullanırken, özellikle bir seçici ile eşleşen bir çocuğa sahip bir öğeyi aramakla ilgili bir soru aramak için bulduğu şey budur, bu yüzden diğer insanların bulmasına yardımcı olmak için yanlış olsaydı, soru başlığını değiştirirdim. gelecekte doğru soru.
hippietrail

Yanıtlar:




7

Kullanım çocuklar jQuery görevi görüyordu.

$("#text-field").keydown(function(event) {
    if($('#popup').children('p.filled-text').length > 0) {
        console.log("Found");
     }
});

$.children('').length seçici ile eşleşen alt öğelerin sayısını döndürür.


1
.size().lengthözellik ile aynı şeyi döndürür, ancak daha yavaştır, bu nedenle onu değiştirmeniz gerekir.
Johannes Klauß

Bana bunu gösterdiğin için teşekkürler Johnnes! Ben bilmiyordum. Answare güncellendi!
Christopher Ramírez

Rica ederim, ama yine de bir hata var. O var .lengthdeğil.length()
Johannes Klauss

: PI, çoğu jQuery arabirimi gibi bir işlev olduğunu düşündü. Sanırım bir tür tutarsızlık. Ancak, answare bir kez daha güncellendi: P Thanks Johannes.
Christopher Ramírez

.lengthMülkiyet sadece yerli javascript var, jQuery kütüphanesinin bir parçası değildir. Ama evet, bazen kafa karıştırıcı olabilir.
Johannes Klauß

4

Basit yol

if ($('#text-field > p.filled-text').length != 0)

2
.Size () yöntemi, işlevsel olarak .length özelliğine eşdeğerdir; ancak, .length özelliği, bir işlev çağrısının ek yüküne sahip olmadığı için tercih edilir.
Hitesh Modha

1

Doğrudan bir çocuksa, daha derine yerleştirilebilirse aşağıdaki gibi yapabilirsiniz>

$("#text-field").keydown(function(event) {
    if($('#popup>p.filled-text').length !== 0) {
        console.log("Found");
     }
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.