【问题标题】:change all image sources jquery更改所有图像源 jquery
【发布时间】:2012-02-20 08:28:01
【问题描述】:

如果无法加载,我想更改所有图像源。一些公司阻止访问 Dropbox,所以我喜欢使用其他图片链接。另外,我不想修改图像和 css 文件。我的代码确实适用于第一个图像,但使每个图像源都相同。我该如何解决?提前致谢:

<html>
<head>
<script src="jquery.js" type="text/javascript"></script>

</head>
<body>

<img  src="img/a.png" alt="img1"/>
 <img  src="img/b.png" alt="img2"/>

</body>

<script>

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);    

    }
</script>
</html>

【问题讨论】:

    标签: javascript jquery image src


    【解决方案1】:

    您必须对所有图像执行相同的过程,我认为您的代码仅适用于第一个。特别是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

    【讨论】:

    • Christoffer,我之前尝试过每个,但随后整个代码停止工作。不过感谢您的帮助。
    【解决方案2】:

    试试这个:

    $(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);
    
                }
            });
        }
    });
    

    【讨论】:

    • Sagar,我使用了您的代码,看起来所有图像都变成了第二个图像,并且页面不会停止加载。感谢您的尝试。
    猜你喜欢
    • 1970-01-01
    • 2010-10-07
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-07
    • 2011-07-25
    相关资源
    最近更新 更多