Curry_warrior 2020-04-17 20:43 采纳率: 50%
浏览 340
已采纳

jQuery改变图片src值图片已成功加载,可是打印出来的src值总是上一个图片的

我用jQuery从本机上选取图片并在html页面上显示。可以看出来图片的内容已经改变了,但是打印图片的src属性还是上一张图片的src,这是为什么呢?

图片说明

图一是上传新图片之前的样子

图片说明

图二是上传了新图片之后的样子。可以看出这两个图片是不同的。

但是上传了新图片过后打印出来的src是最开始图片的src,这是为什么呢

我的打印代码如下:

 fileReader.onload=function(evt){
                    $("#change_Image").attr("src",evt.target.result);
                }
                document.getElementById("example").innerHTML="上传";
                document.getElementById("submitLocalFile").style.display="inline-block";
                //document.getElementById("fade").innerHTML="点击右侧按钮预测:";
                $("#fade").fadeIn(1000);
        console.log($('#change_Image')[0].src)
            }

最开始改变图片的src再打印,按理来说应该图片的src更新了才对呀
这是为什么呢

  • 写回答

3条回答 默认 最新

  • 毕小宝 博客专家认证 2020-04-18 08:19
    关注

    因为你的代码贴的不完整,从前面 onload 的 function 后面的事件是异步触发的。
    但是后面的 console.log 却是顺序的,可能会比修改 src 代码先执行,都加上打印看看执行顺序:

     fileReader.onload=function(evt){
                        $("#change_Image").attr("src",evt.target.result);
                                            // 把 console.log 挪到这里打印就是新的图片了
                                            console.log(' onload '+$('#change_Image')[0].src)
                    }
                    document.getElementById("example").innerHTML="上传";
                    document.getElementById("submitLocalFile").style.display="inline-block";
                    //document.getElementById("fade").innerHTML="点击右侧按钮预测:";
                    $("#fade").fadeIn(1000);
    
                                 //先执行了。
                   console.log('outside onload '+$('#change_Image')[0].src)
          }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改