如何获取其src由jQuery动态填充的图像的维度?

如何获取其src由jQuery动态填充的图像的维度?,jquery,image,attr,Jquery,Image,Attr,假设我有一个空占位符,将元素指向正确的图像。但是,我想基于此图像的宽度执行一些操作,但是$(“img”).width()和$(“img”).attr(“width”)都返回0 如何获得图像的宽度?或者更好的是,有没有一种方法可以动态设置图像的src,这是更好的做法,可以解决我的问题?我个人会附加整个新图像,而不是使用空img标记的src属性 他们怎么会归零?请记住,这两种方法将返回宽度的字符串表示形式,即“10px”,而不是整数10。您必须先等待图像加载 $("img") .attr("sr

假设我有一个空占位符
,将元素指向正确的图像。但是,我想基于此图像的宽度执行一些操作,但是
$(“img”).width()和
$(“img”).attr(“width”)
都返回0


如何获得图像的宽度?或者更好的是,有没有一种方法可以动态设置图像的src,这是更好的做法,可以解决我的问题?

我个人会附加整个新图像,而不是使用空img标记的src属性


他们怎么会归零?请记住,这两种方法将返回宽度的字符串表示形式,即“10px”,而不是整数10。

您必须先等待图像加载

$("img")
  .attr("src", "somephoto.jpg")
  .on("load", function () {
    alert(this.height()+" "+this.width())
  })
我的jQuery可能有点生锈了。这里是简单的ol'JS

var i = new Image()
i.src = "somephoto.jpg"
i.onload = function () {
  alert(this.height + " " + this.width)
}

图像是自由浮动的还是插入到DOM中?我实际上是先插入它,然后继续更改图像。然而,我使用不同尺寸的图像,需要缩放它们;这就是为什么我需要一种快速查找宽度的方法。答案很多:即使这样,直到图像的
onload
事件触发,您仍然无法读取高度和宽度,因为浏览器不知道它们。而且,
img.height
img.width
确实是数字。img.style.height和img.style.width是字符串。鉴于原始海报的问题使用了jQuery,我指的是
$(“img”).attr(“width”)
$(“img”).width()
,它们返回字符串。你是说
.one
而不是
,对吗?另外,您需要将
this
包装到jQuery对象中:
$(this).height()
jQuery没有“on”方法。束缚或束缚。load@sunn0:jQuery确实有一个
.one()
方法,该方法在处理程序第一次激发后执行解除绑定,这对于
加载
处理程序是有意义的。不确定@isaacs是不是在追求这个。