除<= IE7外,所有浏览器都能工作。
检查此示例,http://jsfiddle.net/uVRbG/1 in iE7。
但是,当我从对象中移除样式显示:none时,它正确工作:
http://jsfiddle.net/uVRbG/2/
我不明白,我只是想要硬编码的value...it不应该在意对象在当时是否可见。还有其他方法来获取宽度和高度吗?
注意:我需要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'));谢谢,卫斯理
发布于 2011-09-30 13:17:44
.width()也许对您有帮助,但是关于为什么IE7在这方面有问题,我认为这可能与您的选择器有关。
我一直在IE中遇到:first和:last伪选择器的问题,可能不是选择图像。.attr()在display:none afaik上没有任何bug。
希望这能有所帮助
编辑:试着把这个添加到你的小提琴上:
var imgWidth = $($('#test').html()).attr('width');
alert(imgWidth);有点麻烦的解决办法,但可能会奏效。我尝试过,但无法用IE7进行测试,当我加载jsfiddle >:(
编辑:最后,一个regex:
var imgWidth = $('#test').html().search(/width=[\"\'][0-9]+/);
alert(imgWidth);发布于 2011-09-30 13:15:51
您可以只使用jquery.hide()而不是显示none,然后在隐藏之前将宽度存储在变量中?
发布于 2011-09-30 13:15:13
试着使用
.width()相反,
http://jsfiddle.net/uVRbG/3/
https://stackoverflow.com/questions/7610892
复制相似问题