jq获取动态生成的img宽高为0问题解决

主要原因是因为图片是在DOM结构渲染完成以后调用的,这时候网页中一些资源还没有加载,比如图片等资源,但是DOM结构已经渲染成功了

因为项目中经常用的是jquery,所以,解决图片高度的时候就要在window.οnlοad=function(){}里调用,当然若是需在$(function(){})里的调用img的高度,那么就需要这样来写:

$("#img").get(0).onload = function (){
		//var imgWidth = document.getElementById("img").width; // 原生写法
		//var imgHeight = document.getElementById("img").height; // 原生写法
        var imgWidth = $('#img').width();
        var imgHeight = $('#img').height();

这样,也就是说在某一块dom渲染出来的时候,同时去加载图片,所以这个时候图片的高度也就有了。
所以,主要原因就是:当我们在 ( f u n c t i o n ( ) ) 调 用 (function(){})调用 (function())(‘img’).height()的时候,由于图片还没有加载,所以这时候标签的高度就是0,所以返回值就是0。但是当你用window.οnlοad=function(){}调用的时候,图片已经加载出来了,所以这时候就能得到图片的高度。

所以记得,$(function(){})是在DOM渲染结束,资源还没有加载的时候执行的,如果你想获取到一些资源的信息,这个时候是没有办法的哦!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值