删除style =“background-”的div元素

时间:2018-01-21 16:53:24

标签: javascript jquery html css

好奇的一个。我想在background-image: url('')

时删除div元素

我尝试了以下内容:

$('.bg-image-card').each(function(){
  if ($(this).css('background-image', "url('')") ){
    $(this).remove();
  };
});

它有效 - 但删除所有带有背景图像的div。我之所以使用它只是为了删除那些url('') - 任何指针都会很棒!

即,

screenshot

2 个答案:

答案 0 :(得分:2)

.css()不会返回Boolean值; .css()返回一个jQuery对象,它将评估" truthy"。

当一个空字符串传递给CSS url()函数时,url()中的值将替换为location.href,这似乎是一个能够在Chromium和Firefox上重现的错误

  

3.4.2. Empty URLs

     

如果url()的值是空字符串(如url("")或url()),则url必须解析为无效资源   (类似于url about:invalid确实如此)。



$("div").each(function() {   
  if (window.getComputedStyle(this).backgroundImage === `url("${location.href}")`) {
    $(this).remove()
  }
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div style="background-image:url('')">div</div>
<div>div</div>
&#13;
&#13;
&#13;

错误报告ChromiumFirefox

答案 1 :(得分:0)

我的假设错了。

<击> 您可以使用:

done, draft, partially_available, etc.

<击>

但是,您可以检查背景图片的宽度或高度,如果宽度或高度为0,则将其删除:

$('.bg-image-card').each(function(){
  if ($(this).css('background-image') == "url('')" ){
    $(this).remove();
  };
});