相当长的头衔,抱歉。我有以下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也不会返回图像。
答案 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
方法。