首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery img.attr(“宽度”)返回零。IE7

jQuery img.attr(“宽度”)返回零。IE7
EN

Stack Overflow用户
提问于 2011-09-30 13:14:39
回答 5查看 1.4K关注 0票数 1

除<= IE7外,所有浏览器都能工作。

检查此示例,http://jsfiddle.net/uVRbG/1 in iE7。

但是,当我从对象中移除样式显示:none时,它正确工作:

http://jsfiddle.net/uVRbG/2/

我不明白,我只是想要硬编码的value...it不应该在意对象在当时是否可见。还有其他方法来获取宽度和高度吗?

注意:我需要document.ready的宽度和高度,我等不及要加载所有这些图像,然后使用img.width();

HTML:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
$('#result').html($('#test img:first').attr('width'));
$('#result2').html($('#test img:first')[0].getAttribute('width'));

谢谢,卫斯理

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-09-30 13:17:44

代码语言:javascript
复制
.width()

也许对您有帮助,但是关于为什么IE7在这方面有问题,我认为这可能与您的选择器有关。

我一直在IE中遇到:first:last伪选择器的问题,可能不是选择图像。.attr()display:none afaik上没有任何bug。

希望这能有所帮助

编辑:试着把这个添加到你的小提琴上:

代码语言:javascript
复制
var imgWidth = $($('#test').html()).attr('width');
alert(imgWidth);

有点麻烦的解决办法,但可能会奏效。我尝试过,但无法用IE7进行测试,当我加载jsfiddle >:(

编辑:最后,一个regex:

代码语言:javascript
复制
var imgWidth = $('#test').html().search(/width=[\"\'][0-9]+/);
alert(imgWidth);
票数 0
EN

Stack Overflow用户

发布于 2011-09-30 13:15:51

您可以只使用jquery.hide()而不是显示none,然后在隐藏之前将宽度存储在变量中?

票数 1
EN

Stack Overflow用户

发布于 2011-09-30 13:15:13

试着使用

代码语言:javascript
复制
.width()

相反,

http://jsfiddle.net/uVRbG/3/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7610892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档