Jquery 如果元素包含特定子元素,则更改样式

Jquery 如果元素包含特定子元素,则更改样式,jquery,Jquery,我想在jquery中编写:如果.mainbody包含子.post-123,那么将.mainbody的高度更改为300px 我试着这样写 if ($('.mainbody').contains('.post-123')) { $(".mainbody").css({ 'height': "300px" }); } 而且 if($('.mainbody .post-123')).length > 0){ $(".mainbody").css({ 'height': "3

我想在jquery中编写:如果.mainbody包含子.post-123,那么将.mainbody的高度更改为300px

我试着这样写

   if ($('.mainbody').contains('.post-123')) {
    $(".mainbody").css({ 'height': "300px" });
}
而且

if($('.mainbody .post-123')).length > 0){
    $(".mainbody").css({ 'height': "300px" });
}
但它不起作用,我做错了什么


谢谢大家!

改用
has

$('.mainbody:has(.post-123)').css('height', '300px')

使用“has”而不是“contains”

:将返回true或false

:从匹配元素的子集构造新的jQuery对象

$('.mainbody:has(.post-123)').css('height', '300px');

更改包含到
x.has('.post-123')