我有一个我需要获得高度的图像。我目前正在使用jQuery来获得高度:
height = jQuery("#product-img-box img").attr("height");
我面临的问题是,我在css中将图像大小调整为88%,所以不是给我新的高度,而是在调整图像大小之前得到高度。有没有办法让我达到新的高度?
答案 0 :(得分:2)
读取属性(使用.attr()
)将始终从DOM返回原始内联高度属性。
使用.height()代替(或.outerHeight(),如果需要)。
height = jQuery("#product-img-box img").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);
});
在我看来,没有其他方法可以解决类似问题,但需要等待一些确认!