2012-04-19 103 views
1

onLoad的调用之前,我问的问题是指这个的jsfiddle:http://jsfiddle.net/AxGHA/3/删除CSS样式与jQuery

我基本上要删除浮动:左; StyleSheet属性H2P标签IF没有图像存在于div与jQuery。有任何想法吗?

谢谢!

+0

@simchona:我尝试使用CSS来使它工作,并且不起作用。 – 2012-04-19 16:43:05

回答

7

可以使用:not:has我做了下面的示例代码:

$(".section:not(:has(>img))").addClass("no-image"); 

和CSS为:

.no-image h2, .no-image p { 
    float: none; 
    width: auto; 
} 

例如: http://jsfiddle.net/voigtan/AxGHA/5/

“> IMG”相反:

http://jsfiddle.net/voigtan/AxGHA/6/

我在.section中添加了一个css类,并在CSS中设置了它的外观样式。

+0

@voigtan:这实际上很棒,但由于某种原因,它不想工作。而且,我忘了在h2元素中添加一个右边的图像,就像是一个类似元素的箭头。非常感谢你的帮助! – 2012-04-19 17:08:35

+1

你可以将':has(img)'改成':has(> img)'来查看.section是否有图像的直接子对象:http://jsfiddle.net/voigtan/AxGHA/6/ – voigtan 2012-04-19 17:12:53

2
if(!$('div.section img').length) { 
    $('p, h2', 'div.section').css('float', 'none'); 
} 
+0

非常感谢您的帮助! – 2012-04-19 17:09:36

1
​$(document).ready(function(){ 
    if ($("div.section").find("img").length == 0){ 
     $("h2.section, p.section").css("float", "none")    
    } 
});​ 
+0

非常感谢您的帮助! – 2012-04-19 17:09:27

2

你可以做到这一点

$(".section").each(function() { 
    var hasImage = $(this).children("img").length != 0; 
    if (!hasImage) { 
     $(this).find("h2,p").css("float", "none"); 
    } 
}); 

​ 

退房更新jsFiddle

+0

非常感谢您的帮助! – 2012-04-19 17:09:18

1
!​$('.section img​​​​​​​​​​​​​​​​​').length && $('.section h2, .section p').css('float', 'none'); 
1

我认为你可以做这样的事情(请注意,我没有测试代码):

$('h2, p').parent('div').each(function(index, $element) { 
    if (!$element.has('img')) 
     $element.css('float', 'none'); 
}); 

请注意,我无法从我的位置查看jsfiddle,因此我直接根据您解释的内容来回答问题。

+0

非常感谢您的帮助! – 2012-04-19 17:08:55