使用jQuery获取调整后的图像高度

时间:2013-09-05 17:49:51

标签: javascript jquery

我有一个我需要获得高度的图像。我目前正在使用jQuery来获得高度:

height = jQuery("#product-img-box img").attr("height");

我面临的问题是,我在css中将图像大小调整为88%,所以不是给我新的高度,而是在调整图像大小之前得到高度。有没有办法让我达到新的高度?

4 个答案:

答案 0 :(得分:2)

读取属性(使用.attr())将始终从DOM返回原始内联高度属性。

使用.height()代替(或.outerHeight(),如果需要)。

height = jQuery("#product-img-box img").height();

.height()

  

返回:整数

     

说明:获取匹配元素集中第一个元素的当前计算高度。

答案 1 :(得分:2)

var img = document.getElementById('imageid'); 
//or however you get a handle to the IMG
var width = img.clientWidth;
var height = img.clientHeight;

答案 2 :(得分:1)

http://api.jquery.com/height/ 获取匹配元素集中第一个元素的当前计算高度,或者设置每个匹配元素的高度。

height = jQuery("#product-img-box img").height();

答案 3 :(得分:0)

还可能需要将代码包装到window.resize事件侦听器中,以便在调整窗口大小时传递正确的值。 在单击时被另一个替换后,我还必须获取元素的高度,但这是我解决的另一方面,我通过提供对包装元素的可见性/隐藏性以及绝对位置来解决此问题。包含图像的元素将不再可见,但是将继续调整包含高度值的大小,并且在被其他元素替换时不会发生干扰。如果将css display / none应用于元素,则元素的高度值将为0。 重置为可见性/可见性,并可能在其他元素(匹配相同尺寸)从dom中移除并且img需要重新出现在适当位置(具有正确值)的情况下,定位/继承或位于元素之前。

jQuery(document).ready(function(){

var imgc = document.getElementById("w3all-flightaw-img");
var imgcheight = imgc.clientHeight;
var imgcwidth = imgc.clientWidth;
... may apply css inline to elements that need to have the same width/height, when dom ready

function reportELEMSize() {
imgcheight = document.getElementById("flightaw-img").clientHeight;
imgcwidth = document.getElementById("flightaw-img").clientWidth;
... same as above: may apply css inline to elements, when window resize
}

window.onresize = reportELEMSize; 
// OR (better, so listener not nullified by something else) use:
// window.addEventListener('resize', reportELEMSize);
});

在我看来,没有其他方法可以解决类似问题,但需要等待一些确认!