如何使用Jquery根据src属性检查DOM中是否存在image元素?

如何使用Jquery根据src属性检查DOM中是否存在image元素?,jquery,caching,dom,attributes,Jquery,Caching,Dom,Attributes,我有一些可以缩放的预览图像。 如果用户单击“缩放”,图像将被缓存: var zoomImg = new Image(); zoomImg.onload = function() { image.attr('src', zoomlist[currentFrame]); }); 我需要知道的是,如何检查图像是否被缓存,是否应该显示加载程序。您可以像这样使用属性选择器 if($('img[src="imageSource"]').length){ //Imag

我有一些可以缩放的预览图像。 如果用户单击“缩放”,图像将被缓存:

var zoomImg = new Image();
      zoomImg.onload = function() {
      image.attr('src', zoomlist[currentFrame]);
   });

我需要知道的是,如何检查图像是否被缓存,是否应该显示加载程序。

您可以像这样使用属性选择器

if($('img[src="imageSource"]').length){
     //Image is present
}

注意:这将在DOM中找到
img
元素,而不是缓存。

您可以像这样使用属性选择器

if($('img[src="imageSource"]').length){
     //Image is present
}

注意:这将在DOM中找到
img
元素,而不是缓存。

您可以通过检查图像的完整性和readystate属性来检查图像是否缓存

var zoomImg = new Image();
zoomImg.src = zoomlist[currentFrame];
if (zoomImg.complete || zoomImg.readystate === 4) {
    image.attr('src', zoomlist[currentFrame])
}
else {
    showLoader();
    zoomImg.onload = function() {
        hideLoader();
        image.attr('src', zoomlist[currentFrame]);
    });
}

您可以通过检查图像的complete和readystate属性来检查图像是否缓存

var zoomImg = new Image();
zoomImg.src = zoomlist[currentFrame];
if (zoomImg.complete || zoomImg.readystate === 4) {
    image.attr('src', zoomlist[currentFrame])
}
else {
    showLoader();
    zoomImg.onload = function() {
        hideLoader();
        image.attr('src', zoomlist[currentFrame]);
    });
}

好的,它应该可以工作,因为图像在缓存后被添加到DOM中,但我以前尝试过这种方式来询问这里,但它没有工作。现在将重试。好的,它应该可以工作,因为图像是在缓存后添加到DOM中的,但我以前尝试过这种方式来询问,但没有工作。我现在再试一次。