如果THING的URL为空,那么删除东西?

时间:2014-04-20 03:50:07

标签: jquery url background-image this removeclass

请原谅我的GoogleFu很弱。

我正在检查用户是否为其帖子添加了背景图片。如果没有,则背景图像ULR将为空。

background-image();

我已经编码了,它正在检测空URL(IE:警报响起)。

我也明白为什么它不起作用。因为它是THEN的一部分,而不是IF,“this”不知道它指的是什么。

事实上,我已经编写了几个月的jQuery代码,但是不知道更好/更好的方法。

if ( $('.postImage').css('background-image', 'url()') ){
    alert("EMPTY!!!");
    $(this).remove();
};

为什么不这样编码呢?

$(.postImage).remove();

好吧,因为页面上可能有多个这些,我们只想影响那些空的。

教我,哦greybeards,你会怎样处理这个问题(以简单而优雅的方式处理,没有臃肿的代码)?

:: EDIT ::

好吧,已经有一段时间了,但这就是我所拥有的。

   $('.postImage').each( function(){
        if ( $(this).css('background-image', 'url()') ){

            alert("EMPTY!!!");

            $(this).removeAttr('style');
        };
    });

问题是,这会影响具有.postImage类的任何内容。即使它有类似'url(image / logo.png)'的东西,它也会看到它具有'url()'属性并应用它。它似乎并不关心那个属性是什么。

所以,在我的头版,我得到了这个空!改变9次,我可以一次看一个,因为它针对的是.postImage类的每个对象,并删除它的背景图像。

2 个答案:

答案 0 :(得分:0)

您必须使用each进行导航才能执行此类任务。 像...

$('.postImage').each(function(){
    if ( $(this).css('background-image', 'url()') ){
        alert("EMPTY!!!");
        $(this).remove();
    };
});

但我相信你也可以做到

$('.postImage').css('background-image', 'url()').remove()

如果您在删除时没有计划任何警报。

答案 1 :(得分:0)

$(document).ready(function(){

if ($('#myDiv').css("background-image") === 'url()') {
    alert("Empty Background!");
}

});