使用jQuery查看div是否具有某个类的子项

Sam*_*nch 102 javascript jquery

我有一个div #popup,动态地填充了类的几个段落.filled-text.我试图让jQuery告诉我是否#popup有其中一个段落.

我有这个代码:

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

有什么建议?

Tej*_*ejs 180

您可以使用find功能:

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

  • 无需检查0. 0在js中是假的.https://developer.mozilla.org/en-US/docs/Glossary/Falsy (7认同)
  • 这实际上是因为我需要它,但是参考`if($('#popup').has('p.filled-text').length!= 0){`也可以. (6认同)

Mat*_*ttP 35

有一个hasClass函数

if($('#popup p').hasClass('filled-text'))
Run Code Online (Sandbox Code Playgroud)


Chr*_*rez 7

使用儿童的jQuery funcion.

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

$.children('').length 将返回与选择器匹配的子元素的计数.


Hit*_*dha 5

简单的方法

if ($('#text-field > p.filled-text').length != 0)
Run Code Online (Sandbox Code Playgroud)

  • .size() 方法在功能上等同于 .length 属性;然而,首选 .length 属性,因为它没有函数调用的开销。 (2认同)

Vin*_*ven 5

如果您有多个具有相同类的 div,并且有些只有该类,则必须检查每一个:

            $('.popup').each(function() {
                if ($(this).find('p.filled-text').length !== 0) {
                    $(this).addClass('this-popup-has-filled-text');
                }
            });
Run Code Online (Sandbox Code Playgroud)