2013-08-23 52 views
0

我想添加一个margin-bottom到一个div,当图像div里面不存在,用Javascript。我不能添加类noimage,因为它不会与我需要使用的CMS(Typo3)一起工作,而且我很确定我将不得不使用JS来完成此操作。Javascript:将CSS属性添加到div,当它没有其他某个其他div

这在相当配合物结构,但它看起来是这样的:

<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需要有一个边距。

非常感谢您的帮助:)

回答

2

尝试

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

演示:Fiddle

+0

谢谢这个工作:) – user2164961

0

一个快捷方式是:

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

我建议增加一类并加入你的margin-bottom和其他任何东西,你可以选择与:not:has

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

但是,如果你在使用内联样式设置,并且不希望使用一类CT它们,使用.css()功能:

$(".wrapper:not(:has(.image))").css("margin-bottom","15px"); 
1

你可以这样做:

$(".wrapper").each(function() { 
    if($(this).find(".image").length == 0) { 
     $(this).css('margin-bottom', '10px'); 
    } 
}) 
0

最后解决方案是用jquery得到的。试试这个fiddle。 这是你想要的东西。 这是Jquery的

$('.wrapper').has('.image').css('margin-bottom','30px'); 
+0

“所以,当有* *没有图像,包装DIV需要有边距”。 –