适用于除< = IE7 ..
之外的所有浏览器检查此示例,iE7中的http://jsfiddle.net/uVRbG/1。
当我从对象中删除样式显示:none时,它可以正常工作:
我不明白,我只是想要硬编码的值...当时对象是否可见无关紧要..有没有其他方法可以获得宽度和高度?
注意:我需要document.ready的宽度和高度,我不能等待加载所有这些图像,然后使用img.width();
HTML:
<div id="test" style="display:none">
<img src="http://neuro.amygdala.net/wp-content/uploads/2007/11/i-stress-test.gif" width="100" height="100" />
</div>
<div id="result"></div>
<div id="result2"></div>
Javascript:
$('#result').html($('#test img:first').attr('width'));
$('#result2').html($('#test img:first')[0].getAttribute('width'));
谢谢, 韦斯利
答案 0 :(得分:1)
您可以使用jquery.hide()而不是display none,并在隐藏隐藏之前将宽度存储在变量中吗?
答案 1 :(得分:1)
尝试此解决方法:使用visibility:hidden;position:absolute
代替display:none
。然后将图像加载并放置在一起,这样就可以计算宽度。
如果您想稍后显示图片,请同时将其更改回position:relative
。
答案 2 :(得分:0)
答案 3 :(得分:0)
.width()
可能对您有所帮助,但至于为什么IE7有这个问题,我认为这可能与您的选择器有关。
我总是遇到IE中:first
和:last
伪选择器的问题,可能就是没有选择图像。
.attr()
afaik没有任何错误。
希望这有帮助
编辑: 尝试将此添加到您的小提琴:
display:none
一些hacky解决方法但可能有效。我已经尝试过并且无法使用IE7进行测试,当我加载jsfiddle&gt;时会抛出脚本错误:(
编辑: 最后一招,一个正则表达式:
var imgWidth = $($('#test').html()).attr('width');
alert(imgWidth);
答案 4 :(得分:0)
在获得宽度之前,您必须等待图像加载!