142 votes

Utilisation de jQuery pour voir si un div a un enfant avec une certaine classe

J'ai un div #popup qui est dynamiquement rempli de plusieurs paragraphes avec la classe .filled-text . J'essaie d'obtenir de JQuery qu'il me dise si #popup contient un de ces paragraphes.

J'ai ce code :

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

Des suggestions ?

236voto

Tejs Points 23834

Vous pouvez utiliser le trouver fonction :

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

42voto

MattP Points 1235

Il existe un hasClass función

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

11voto

Utilisez le enfants fonction de jQuery.

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

$.children('').length retournera le nombre d'éléments enfants qui correspondent au sélecteur.

5voto

Hitesh Modha Points 580

Une méthode simple

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

4voto

Vince Verhoeven Points 1377

Si vous avez plusieurs divs avec la même classe et que certains n'ont que cette classe, vous devez vérifier chacun d'entre eux :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X