请原谅我的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类的每个对象,并删除它的背景图像。
答案 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!");
}
});