在Internet Explorer中获取图像的宽度和高度

Oma*_*bid 1 html jquery internet-explorer

我有一个包含在几个DIV元素中的图像

<div id="wrapper">
...
<img src="myphoto.png" height="400px" width="500px>
</div>
Run Code Online (Sandbox Code Playgroud)

我使用jQuery来访问我使用的高度或宽度

jQuery(img).attr('height');
Run Code Online (Sandbox Code Playgroud)

要么

jQuery(img)[0].height;
Run Code Online (Sandbox Code Playgroud)

不幸的是,当包装DIV'显示'属性改变时,这些值被设置为0,例如,如果我这样做

$('#wrapper').hide()
then
jQuery(img)[0].height = 0;
Run Code Online (Sandbox Code Playgroud)

属性相同.

任何想法如何解决这个问题,显示DIV,获取值并再次隐藏它确实解决了问题,但我无法猜测包装DIV的数量(以及它们的行为会发生变化).

谢谢

编辑:谢谢你的所有答案.但是,我忘了提到我不控制DIV的隐藏和风格.我的脚本使用图像进行播放,并且可以集成到任何页面中,因此用户可以隐藏/显示/更改值.

Nic*_*ver 6

使用.css()来获取存储的值,而不是像这样:

jQuery('img').css('height');
Run Code Online (Sandbox Code Playgroud)

我知道这听起来有点奇怪,但在你解雇之前,试试吧 :)

  • 只有在CSS中或使用属性显式设置宽度时,这才有效.(事实上​​,OP的图像有这些指定,我注意到,只是对于其他情况,当图像没有) (2认同)