Soru Bir div'in belirli bir sınıfa sahip olup olmadığını görmek için jQuery'yi kullanma


Bir div var #popup Bu, sınıfla birkaç paragrafla dinamik olarak doldurulur .filled-text. JQuery'yi anlatmaya çalışıyorum. #popup bu paragraflardan birine sahip.

Bu kodum var:

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

Baska öneri?


76
2018-05-10 17:21


Menşei


Sadece bir çocuk ya da herhangi torun (çocuk, torun, büyük torun, vb). Soru başlığı şu anda "çocuk" diyor ama cevaplar keyfi soyundan bahsediyor gibi görünüyor. - hippietrail
O zamanlar özellikle bir çocuk aradığına inanıyorum ama bu soru neredeyse 4 yaşından beri emin olmak zor. Her iki durumda da, soru ve cevap hem çocukları hem de torunları kapsamaktadır ve özellikle çocukları değil de torunlarını kapsayan cevaplar vardır, bu yüzden ne almaya çalıştığınızdan emin değilim. - Samsquanch
Ah, sadece bir seçici ile eşleşen bir çocuk ile bir eleman aramaya ilişkin bir soru aramak için bir arama motoru kullanırken bu, diğer insanların bulmasına yardımcı olmak için yanlış olsaydı, soru başlığını ayarlayabilmem için bulduğu şeydir. Gelecekte doğru soru. - hippietrail


Cevaplar:


Kullanabilirsiniz bulmak fonksiyon:

if($('#popup').find('p.filled-text').length !== 0)
   // Do Stuff

144
2018-05-10 17:23



Bu aslında ihtiyacım olduğu gibi çalıştı, ama referans için if($('#popup').has('p.filled-text').length != 0) { ayrıca çalışır. - Samsquanch
0'a bakmaya gerek yok, js'de bir falsey. developer.mozilla.org/en-US/docs/Glossary/Falsy - ravi


Var hasClass fonksiyon

if($('#popup p').hasClass('filled-text'))

29
2018-05-10 17:25





Kullan çocuklar jQuery'nin funcion'ı.

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

$.children('').length Seçici ile eşleşen çocuk elemanlarının sayısını döndürecektir.


6
2018-05-10 17:25



.size() aynı olarak döndürür .length özellik ama daha yavaş, bu yüzden onu değiştirmeniz gerekir. - Johannes Klauß
Bana bunu işaret ettiği için teşekkürler Johnnes! Ben bilmiyordum. Answare güncellendi! - Christopher Ramírez
Rica ederim, ama hala bir hata var. Onun .length değil .length() - Johannes Klauß
: P jQuery arayüzleri gibi bir işlev olduğunu düşündüm. Bir çeşit tutarsızlık bence. Ama iyi, answare bir kez daha güncellendi: P Teşekkürler Johannes. - Christopher Ramírez
.length Özellik jQuery kitaplığının bir parçası değil, yalnızca yerel javascript. Ama evet, bazen kafa karıştırıcı olabilir. - Johannes Klauß


Basit yol

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

3
2018-05-08 06:20



size () ve uzunluk arasındaki fark nedir ????
.Size () yöntemi, .length özelliğine eşdeğerdir; bununla birlikte, .length özelliği, bir işlev çağrısının üst kısmına sahip olmadığından tercih edilir. - Hitesh Modha
ref: api.jquery.com/size - Hitesh Modha


Eğer doğrudan bir çocuksa, daha derinlemesine iç içe olabilirse aşağıdaki gibi yapabilirsiniz:

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

1
2018-05-10 17:24