使用jQuery查看div是否包含具有特定类的子项

7uhlpewt  于 2022-11-22  发布在  jQuery
关注(0)|答案(9)|浏览(138)

我有一个div #popup,它动态地填充了几个带有.filled-text类的段落。我试图让jQuery告诉我#popup中是否有这样的段落。
我有这样的代码:

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

有什么建议吗?

zfciruhq

zfciruhq1#

您可以使用find函数:

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

uxhixvfz2#

有一个hasClass函数

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

ma8fv8wu3#

使用jQuery的children函数。

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

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

eaf3rand

eaf3rand4#

简单方式

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

ocebsuys5#

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

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

wlp8pajw6#

如果它是直接子级,您可以按照以下步骤操作,如果它可以嵌套得更深,请删除〉

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

uqcuzwp87#

在您提出这个问题的10年里,jQuery几乎添加了您上面描述的.has(函数,它过滤调用它的选择器--而且比使用$('.child').parent('.parent')更快,可能会一直运行到DOM。

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

zpgglvta8#

$('.classone')

  • .find('p .classtwo')给予子元素=p
  • .has('p .classtwo')给予'.classone'元素
fcy6dtqo

fcy6dtqo9#

有个好办法

if($("#your_id .your_class")) { 
   //Do something
});

如果(“.your_class”)是父项(“#your_id”)的唯一子项或父项(“#your_id”)的第一个子项,则也可以使用“〉”

if($("#your_id>.your_class")) { 
   //Do something
});

(“#your_id”)是父类或标识。
(“.your_class”)是您要查找的类或ID。

相关问题