0

当内部的图像 div 不存在时,我想使用 Javascript 向 div 添加一个边距底部。我无法添加类 noimage,因为它不适用于我需要使用的 CMS(Typo3),而且我很确定我将不得不使用 JS 来执行此操作。

它的结构相当复杂,但看起来像这样:

<div class="wrapper">
    <div class="content"></div>
</div>
<div class="wrapper">
    <div class="content"></div>
    <div class="image"></div>
</div>
<div class="wrapper">
    <div class="content"></div>
</div>
<div class="wrapper">
    <div class="content"></div>
    <div class="image"></div>
</div>

所以当没有图像时,包装器 div 需要有一个 margin-bottom。

非常感谢您的帮助 :)

4

5 回答 5

2

尝试

$('.wrapper').not(':has(.image)').css('margin-bottom', '10px')

演示:小提琴

于 2013-08-23T10:08:02.130 回答
1

你可以这样做:

$(".wrapper").each(function() {
    if($(this).find(".image").length == 0) {
        $(this).css('margin-bottom', '10px');
    }
})
于 2013-08-23T10:14:01.417 回答
0

一个捷径是:

$('.wrapper:not(:has(.image))').css('margin-bottom', '10px');
于 2013-08-23T10:12:18.397 回答
0

我建议添加一个类并添加你的和margin-bottom其他任何东西,你可以选择它们:not:has

$(".wrapper:not(:has(.image))").addClass("no-image");

但是,如果您打算使用内联样式并且不想使用类,请使用以下.css()函数:

$(".wrapper:not(:has(.image))").css("margin-bottom","15px");
于 2013-08-23T10:13:05.793 回答
0

最后,使用 Jquery 得到了解决方案。试试这个小提琴。这是你想要的东西。这是jQuery

$('.wrapper').has('.image').css('margin-bottom','30px');
于 2013-08-23T10:18:03.083 回答