我使用jQuery更改了img标记的scr,例如,
$("#img1").attr("src", "pic1.png");
在此之后,我尝试获取img的宽度(它没有在html中设置),
$("#img1").width();
似乎src的宽度没有改变,我错过了什么吗?感谢。
答案 0 :(得分:4)
如果您尝试立即执行此操作,可能是因为图像尚未完全加载。
使用.one()
为图像添加单个加载处理程序。
$("#img1").attr("src", "pic1.png").one('load',function() {
alert($(this).width());
});
或者如果图像被缓存,您可以尝试:
$("#img1").attr("src", "pic1.png").each(function() {
if( this.complete ) {
alert($(this).width());
} else {
$(this).one('load',function() {
alert($(this).width());
});
}
});
正如@Humberto所述,您使用的是scr
,而不是正确的src
。