【问题标题】:Remove CSS Styles onLoad with jQuery使用 jQuery 删除 CSS 样式 onLoad
【发布时间】:2012-05-01 05:48:41
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • @simchona:我尝试使用 CSS 使其工作,但它不起作用。

标签: javascript jquery html css append


【解决方案1】:

你可以使用: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 中根据我想要的外观设置它的样式。

【讨论】:

  • @voigtan:这实际上很棒,但由于某种原因它不想工作。另外,我忘了在 h2 元素中添加右侧的图像,有点像箭头来类似元素。非常感谢您的帮助!
  • 您可以将:has(img) 更改为:has(>img) 以查看.section 是否有图像的直接子元素:jsfiddle.net/voigtan/AxGHA/6
【解决方案2】:

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

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

请注意,我无法从哪里查看 jsfiddle,所以我直接根据您的解释来回答。

【讨论】:

  • 非常感谢您的帮助!
【解决方案3】:
!​$('.section img​​​​​​​​​​​​​​​​​').length && $('.section h2, .section p').css('float', 'none');

【讨论】:

    【解决方案4】:

    你可以这样做

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

    查看更新后的jsFiddle

    【讨论】:

    • 非常感谢您的帮助!
    【解决方案5】:
        ​$(document).ready(function(){
        if ($("div.section").find("img").length == 0){
            $("h2.section, p.section").css("float", "none")            
        }
    });​
    

    【讨论】:

    • 非常感谢您的帮助!
    【解决方案6】:
    if(!$('div.section img').length) {
       $('p, h2', 'div.section').css('float', 'none');
    }
    

    【讨论】:

    • 非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 2013-11-24
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多