使用jQuery更新图片src异常:src显示为[object Object]求助
嘿,我来帮你拆解这个问题的根源,以及怎么修复它:
问题出在哪?
你的代码里有两个关键的误解,直接导致了现在的异常结果:
jQuery的
.load()方法不是用来获取数据返回值的
你误以为.load()会返回请求得到的字符串,但实际上它的设计目的是把远程页面的内容直接插入到你选中的DOM元素中,而且它的返回值是jQuery对象本身(就是你调用它的那个<img>的jQuery包装实例)。所以你把这个对象赋值给src属性时,浏览器会把它转成字符串[object Object],这就是图片src变成奇怪值的原因。.load()会自动把响应内容塞进目标元素
当你调用$("#iconImage").children('img').load(iconLinkURL)时,这个方法已经悄悄把请求到的new/icon.png文本插入到了<img>标签的内部,这就是你看到<img>里多了那段文本的原因。
正确的实现方式
要获取远程返回的字符串作为图片的src,应该用$.get()来发起请求,在回调函数里处理结果:
<script> var iconLinkURL = "Users/NewIcon"; // 发起GET请求获取响应内容 $.get(iconLinkURL, function(responseText) { // 把返回的字符串赋值给img的src,记得去掉可能的空白字符 $("#iconImage img").attr('src', responseText.trim()); }); </script>
这样就能正确把new/icon.png设置成图片的src,也不会把文本插到标签里了~
内容的提问来源于stack exchange,提问作者marchemike
相关产品推荐
相关产品推荐

