Использование jQuery, чтобы узнать, имеет ли div дочерний элемент с определенным классом

У меня есть div #popup, который динамически заполняется несколькими абзацами с классом .filled-text. Я пытаюсь получить jQuery, чтобы сказать мне, если #popup имеет один из этих абзацев в нем.

У меня есть этот код:

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

Любые предложения?

Ответ 1

Вы можете использовать функцию find:

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

Ответ 2

Существует функция hasClass

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

Ответ 3

Используйте children funcion jQuery.

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

$.children('').length вернет количество дочерних элементов, которые соответствуют селектору.

Ответ 4

Простой способ

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

Ответ 5

Если это прямой ребенок, вы можете сделать, как показано ниже, если он может быть вложен глубже, удалите >

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