135

我有一个#popup用类动态填充几个段落的 div .filled-text。我试图让 jQuery 告诉我其中是否#popup有这些段落之一。

我有这个代码:

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

有什么建议么?

4

6 回答 6

229

您可以使用查找功能:

if($('#popup').find('p.filled-text').length !== 0)
   // Do Stuff
于 2012-05-10T17:23:09.027 回答
42

有一个hasClass函数

if($('#popup p').hasClass('filled-text'))
于 2012-05-10T17:25:52.173 回答
10

使用jQuery的children函数。

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

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

于 2012-05-10T17:25:52.210 回答
5

简单的方法

if ($('#text-field > p.filled-text').length != 0)
于 2014-05-08T06:20:46.337 回答
2

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

            $('.popup').each(function() {
                if ($(this).find('p.filled-text').length !== 0) {
                    $(this).addClass('this-popup-has-filled-text');
                }
            });
于 2021-10-15T12:59:56.493 回答
1

如果它是一个直接的孩子,如果它可以嵌套更深,您可以执行以下操作,删除 >

$("#text-field").keydown(function(event) {
    if($('#popup>p.filled-text').length !== 0) {
        console.log("Found");
     }
});
于 2012-05-10T17:24:46.063 回答