首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery .attr的图像高度获取父元素的大小,而不是Chrome中的实际图像高度属性

使用jQuery .attr的图像高度获取父元素的大小,而不是Chrome中的实际图像高度属性
EN

Stack Overflow用户
提问于 2013-09-20 20:13:58
回答 2查看 193关注 0票数 0

我有一个图像是在一个普通的DIV里面。我们称它为DIV b。在DIV b的上面有另一个DIV,我称之为DIV a。DIV a有溢出:隐藏。代码如下:

代码语言:javascript
复制
<div id="a">
  <div id="b">
    <img id="image" src="http://fgjdfgsjh.com/images/hghgajfhsd.jpg" height="186" width="900">
  </div>
</div>

..。下面是本例中一些重要的CSS:

代码语言:javascript
复制
#a {overflow: hidden; height: 128px;}

..。最后是一些.js:

代码语言:javascript
复制
<script>
  $(document).ready(function(){
     var test = $('#image').attr('height');
     alert(test);
  });
</script>

如您所见,图像上已经设置了height属性。我的脚本(jQuery)需要获取这些信息,但是当我使用$('# image ').attr(' height ')时,脚本给我的是数字128,这是包含#b和图像的#a元素的高度,而不是图像的预期高度,后者是186,在HTML中设置为一个属性。

这在Chrome中正在发生。Firefox可以获得正确的图像高度(186,而不是128)。

如何在Chrome中获取图片的实际原始高度?有没有可能用简单的jQuery来做这件事,或者我必须做一些花招(比如在一个单独的对象中重新加载图像并检查它的原始高度)?

EN

回答 2

Stack Overflow用户

发布于 2013-09-20 20:15:45

CSS通常比height属性更可取。要使用jQuery,请使用.css

代码语言:javascript
复制
$('#image').css('height');

它将在此处返回186px。如果您只想要186,请使用.height

代码语言:javascript
复制
$("#image").height();
票数 1
EN

Stack Overflow用户

发布于 2013-09-20 21:05:17

Chrome在这个问题上行为反复无常。我尝试了@Mooseman提供的代码,但当反复刷新页面时,脚本有时会弹出128px,有时会弹出186px!

看起来唯一一致的方法就是动态加载图像。我从这里借用了代码:"getting width and height of a dynamic image“。

最后,代码是:

代码语言:javascript
复制
  $('<img/>').attr('src', $('#image').attr('src')).load(function() {
    // Then just get the resulting loaded image height by using:
    var myHeight = this.height;
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18916543

复制
相关文章

相似问题

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