jQuery img.attr('width') returns zero.. IE7
jQuery img.attr('width') returns zero.. IE7
适用于除<= IE7..之外的所有浏览器
查看此示例,在iE7中为http://jsfiddle.net/uVRbG/1。
当我从对象中删除样式display:none时,它可以正常工作:
http://jsfiddle.net/uVRbG/2/我不明白,我只是想要硬编码的值…对象在当时是否可见并不重要。还有其他方法来获取宽度和高度吗?
注意:我需要在文档的宽度和高度。准备好了,我不能等待所有这些图像加载,然后使用image .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'));
谢谢,韦斯利
你可以只是使用jquery.hide()而不是显示无,并存储在一个变量的宽度隐藏之前?
.width()
可能会帮助你,但为什么IE7有这个问题,我认为这可能是与你的选择器。
我在IE中总是遇到:first
和:last
伪选择器的麻烦,它可能只是没有选择图像。.attr()
和display:none
没有任何bug。
希望有帮助
编辑:试着把这个添加到你的小提琴中:
var imgWidth = $($('#test').html()).attr('width');
alert(imgWidth);
有点粗糙的解决方法,但可能有效。我试过了,不能用IE7测试,当我加载jsfiddle>:(
)时,它会抛出一个脚本错误编辑:最后,使用regex:
var imgWidth = $('#test').html().search(/width=['"''][0-9]+/);
alert(imgWidth);
尝试使用
.width()
而不是http://jsfiddle.net/uVRbG/3/试试这个方法:用visibility:hidden;position:absolute
代替display:none
。然后加载图像并将其定位到不碍事的位置,这样就可以计算宽度了。
当您想稍后显示图像时,请同时将其更改为position:relative
。
您必须等待图像加载之前,您可以获得的宽度!
相关文章:
- parseInt("08") returns 0
- JavaScript returns [object Object]
- Javascript imageData returns array of 0's
- HTML Javascript getElementById for <img> image returns
- $('#select').val() returns UNDEFINED
- Flickr api returns data fail() jquery
- Javascript Timer returns NaN
- node-mysql connection.query() returns undefined
- Firefox-SDK contentScript returns null
- Angular $q.defer() returns Object{then: function}
- document.getElementById(#mapid) returns null
- JavaScript getElementById returns null
- Phonegap: Camera.getPicture only returns NATIVE_URI
- Javascript returns [object HTMLSpanElement]
- Javascript eval(0047) returns 39
- localStorageService.set returns "isUndefined is not def
- jQuery $("body").height() returns undefined
- Meteor cursor.fetch().property returns "undefined"
- C# DateTime to Javascript parse returns
- jQuery img.attr('width') returns zero.. IE7