当style = auto或100%时获取元素高度?

Kar*_*son 3 javascript styles element

正如问题询问当元素具有style ="width:100%; height:auto;"时,如何获得元素的精确px高度或宽度 例如.

我可能不会将它嵌入div中并通过它获得高度/宽度!

我猜javascript可以帮到这里.

编辑:我使用这个:

var collectNodes = document.getElementById('fade').children;

collectNodes[y].height() // ??
Run Code Online (Sandbox Code Playgroud)

以下代码为我提供了字符串"auto":

collectNodes[0].style.height;
Run Code Online (Sandbox Code Playgroud)

EDIT2:这是我的代码.

<div id="divId">
    <img class="node" src="somePic0.png" style="z-index:10; opacity:0;"/>
    <img class="node" src="somePic1.png" style="z-index:9; opacity:0;"/>
    <img class="node" src="somePic2.png" style="z-index:8; opacity:1;"/> 
    <img class="node" src="somePic3.png" style="z-index:7; opacity:1;"/>
    <img class="node" src="somePic4.png" style="z-index:6; opacity:1;"/>
</div>

<script>
    var collectNodes = document.getElementById('divId').children; 
    var y = 0;
    for ( var x = 0; x < collectNodes.length; x++ ) {
        if ( collectNodes[x].style.opacity !== "" && !y ) {
            y = x;
        }
    }

    alert(collectNodes[y].height); // This alerts the string "auto" and not pixel height
</script>
Run Code Online (Sandbox Code Playgroud)

soy*_*uka 7

你可以用这样的纯JavaScript做到这一点:

使用Javascript

var divHeight;
var obj = document.getElementById('id_element');

if(obj.offsetHeight) {
    divHeight=obj.offsetHeight;

} else if(obj.style.pixelHeight) {
    divHeight=obj.style.pixelHeight;

}
Run Code Online (Sandbox Code Playgroud)

使用jQuery库它更容易:

JQuery的

var height = $('#element').height();
Run Code Online (Sandbox Code Playgroud)

编辑

现在容器中有许多元素:

HTML

<div id="divId">
    <img class="node" src="path/to/pic" style="z-index:10; opacity:0;"/>
    <img class="node" src="path/to/pic" style="z-index:9; opacity:0;"/>
    <img class="node" src="path/to/pic" style="z-index:8; opacity:1;"/> 
    <img class="node" src="path/to/pic" style="z-index:7; opacity:1;"/>
    <img class="node" src="path/to/pic" style="z-index:6; opacity:1;"/>
</div>
Run Code Online (Sandbox Code Playgroud)

为了兼容性,我将不透明度更改为可见性.不要使用display:none; 或高度解析将失败;).

JQuery的

$("#divId img").each(function(index, picture) {
   var height = $(picture).height();
   //Do everything you want with the height from the image now
});
Run Code Online (Sandbox Code Playgroud)

小提琴,看它是否有效.