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

时间:2015-02-09 18:02:06

标签: jquery

我想用jquery写:if .mainbody包含子.post-123然后将.mainbody的高度更改为300px。

我试着像这样写

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

以及

if($('.mainbody .post-123')).length > 0){
    $(".mainbody").css({ 'height': "300px" });
}

但它没有用,我做错了什么?

谢谢!

2 个答案:

答案 0 :(得分:0)

使用has代替

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

FIDDLE

答案 1 :(得分:0)

使用'有'而不是'包含'。

contains:将返回true或false

has:从匹配元素的子集构造一个新的jQuery对象。

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