更改所有图像源jquery
如果无法加载,我想更改所有图像源。 一些公司阻止访问Dropbox,所以我喜欢使用替代链接的图像。 另外,我不想修改图像和CSS文件。 我的代码适用于第一个图像,但使每个图像源都相同。 我该如何解决? 提前致谢:
var image = new Image(); image.src = "http://dropbox.com/favicon.ico"; if (image.height < 0) { var imgsrc = $('img').attr('src'); var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); imgsrc1 = imgsrc.substr(4); var imgalt = imgsrc1.substr(4,imgsrc.length - 4); var imgsrc2 ='t/' + imgsrc1; $('img').attr('src',imgsrc2); $('img').attr('alt',imgalt); } else { var imgsrc = $('img').attr('src'); var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); imgsrc1 = imgsrc.substr(4); var imgalt = imgsrc1.substr(4,imgsrc.length - 4); var imgsrc2 ='http://dl.dropbox.com/u/xxxxxx/img/' + imgsrc1; $('img').attr('src',imgsrc2); $('img').attr('alt',imgalt); }
您必须对所有图像执行相同的过程,我认为您的代码仅适用于第一个图像。 特别是行var imgsrc = $('img').attr('src');
。
在else子句中尝试这样的事情:
$('img').each(function() { var $img = $(this); var imgsrc = $img.attr('src'); var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); imgsrc1 = imgsrc.substr(4); var imgalt = imgsrc1.substr(4,imgsrc.length - 4); var imgsrc2 ='http://dl.dropbox.com/u/xxxxxx/img/' + imgsrc1; $img.attr('src',imgsrc2); $img.attr('alt',imgalt); }
值得注意的是,Dropbox至少有每天带宽的转移限制(不知道每天是否有最大命中数): https : //www.dropbox.com/help/45
试试这个:
$(document).ready(function(){ $('img').each(function(){ var imgsrc = $(this).attr('src'); $(this).load(function(){ if( $(this).prop('complete') ){ var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); imgsrc1 = imgsrc.substr(4); var imgalt = imgsrc1.substr(4,imgsrc.length - 4); var imgsrc2 ='t/' + imgsrc1; $('img').attr('src',imgsrc2); $('img').attr('alt',imgalt); }else{ var imgsrc1 = imgsrc.substr(imgsrc.lastIndexOf("img/")); imgsrc1 = imgsrc.substr(4); var imgalt = imgsrc1.substr(4,imgsrc.length - 4); var imgsrc2 ='http://dl.dropbox.com/u/xxxxxx/img/' + imgsrc1; $('img').attr('src',imgsrc2); $('img').attr('alt',imgalt); } }); } });