使用jQuery删除onLoad上的CSS样式

时间:2012-04-19 16:39:45

标签: javascript jquery html css append

在我问这个问题之前,请参考这个jsFiddle:http://jsfiddle.net/AxGHA/3/

我基本上想要移除浮动:左; H2 P 标签上的StyleSheet属性 IF 使用jQuery在div中不存在任何图像。有什么想法吗?

谢谢!

6 个答案:

答案 0 :(得分: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中设置它的样式,我希望它看起来如何。

答案 1 :(得分:2)

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

答案 2 :(得分:2)

你可以这样做

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

​

查看更新后的jsFiddle

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

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

请注意,我无法从哪里查看jsfiddle,因此我直接根据您的解释来确定答案。