在调用Web服务设置背景图像后,如何查看div是否有背景图像

时间:2015-03-19 10:50:30

标签: javascript jquery html

相当长的头衔,抱歉。我有以下divs

<div class="my-div" style="background: url(path/to/some/webservice)"></div>
<div class="my-div" style="background: url(path/to/some/webservice)"></div>
<div class="my-div" style="background: url(path/to/some/webservice)"></div>

有时Web服务会返回一个图像,有时它不会返回,在这种情况下background看起来只是白色(我确信它只是一种从body继承的样式或者其他) 。

所以我的问题是,我怎么能在我的jquery中告诉我div是否有background?我尝试了以下方法:

$('.my-div').each(function(){
    if ($(this).css('background') == 'none') {
        alert('no background set!');
    }
});

但那没用。我假设它是因为它认为它有一个背景设置因为divs样式指向某个URL。但即便如此,有时该URL也不会返回图像。

1 个答案:

答案 0 :(得分:0)

您需要加载图片,这样您才能判断网址是否返回了有效图片:

var img = new Image();

img.onerror = function() {
  alert(this.src + " doesn't point to a valid image");
}

img.src = "path/to/some/webservice";

您可以迭代div,为每个div加载图像,但请记住加载是异步的,因此如果URL没有返回有效图像,则取决于您要执行的实际操作,无法使用each方法。