使用 jQuery 查看一个 div 是否有一个具有特定类的子类

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

我有这个密码:

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

有什么建议吗?

210369 次浏览

你可以使用 找到函数:

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

如果它是一个直接的孩子,你可以做如下,如果它可以嵌套更深删除 >

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

有一个 HasClass函数

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

使用 jQuery 的 孩子们函数。

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

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

简单的方法

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

如果有多个 div 具有相同的类,而有些只具有相同的类,那么必须检查每个 div:

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

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

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

$('.classone')

  • .find('p .classtwo')给出子元素 = p
  • .has('p .classtwo')给出’. classone’元素

有个好办法

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

也可以使用“ >”if (。Your _ class”)是父类的唯一子类(“ # your _ id”)或父类的第一个子类(“ # your _ id”)

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

(“ # your _ id”)是父类或 id。
(“ . your _ class”)是您要找的类或 id。