Javascript 如果存在图像路径,则替换文本;如果不存在,则显示原始图像
嗨,我已经设置了一些代码,用更高分辨率的版本替换图像。看起来像这样Javascript 如果存在图像路径,则替换文本;如果不存在,则显示原始图像,javascript,jquery,Javascript,Jquery,嗨,我已经设置了一些代码,用更高分辨率的版本替换图像。看起来像这样 $("img[src*='.jpg']").each(function(){ $(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg')); }); 它只查找所有图像并替换文件名 但有时,高分辨率图像的文件名不是'highres.jpg' 我想做的是,如果highres.jpg存在,显示那个。否则只需显示原稿 以下是我尝试过的: $("i
$("img[src*='.jpg']").each(function(){
$(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg'));
});
它只查找所有图像并替换文件名
但有时,高分辨率图像的文件名不是'highres.jpg'
我想做的是,如果highres.jpg存在,显示那个。否则只需显示原稿
以下是我尝试过的:
$("img[src*='.jpg']").each(function(){
var replaceImage = function() {
$(this).attr('src',$(this).attr('src').replace('.jpg','.highres.jpg'));
};
if (replaceImage > -1) {
replaceImage;
};
});
我很确定我在抓救命稻草,还有更好的方法。。。因为它不工作:)下面是答案的直接实现:
可能重复:谢谢你的链接,但我没有发现它与我的例子有足够密切的关系。不过,这确实让我找到了解决办法,所以谢谢你。。希望能有帮助。
$("img[src*='.jpg']").each(function(){
var imgSrc = $(this).attr('src'); // The original src
var highresSrc = imgSrc.replace('.jpg','.highres.jpg'); // High res src
var img = new Image();
img.onerror = function() { // In case of error, revert to original
img = new Image();
img.src = imgSrc;
};
/*
img.onload = function() {
// Image has loaded successfully. Do something if you want.
...
};
*/
img.src = highresImg; // Try loading highres
});