在JavaScript中获取DIV的z-index?

时间:2009-09-07 07:27:31

标签: javascript html z-index

我有一个normaldiv1分组normaldiv。 我试图通过style属性访问它的z-index,但它总是返回0,尽管它在样式表中设置为2.

CSS:

.normaldiv
{
    width:120px; 
    height:50px; 
    background-color:Green;  
    position: absolute;
    left: 25px;
    top:20px;
    display:block;
    z-index:2;
}

`

HTML:

<div id="normaldiv1" 
     class="normaldiv" 
     newtag="new" 
     tagtype="normaldiv1" 
     onmousedown="DivMouseDown(this.id);" 
     ondblclick="EditCollabobaTag(this.id,1);" 
     onclick="GetCollabobaTagMenu(this.id);" 
     onblur="RemoveCollabobaTagMenu(this.id);">

JavaScript的:

alert(document.getElementById('normaldiv1').style.zIndex);

如何使用JavaScript找到元素的z-index?

2 个答案:

答案 0 :(得分:19)

由于CSS部分中提到了z索引,因此您将无法直接通过您提到的代码获取它。您可以使用以下示例。

function getStyle(el,styleProp)
{
    var x = document.getElementById(el);

    if (window.getComputedStyle)
    {
        var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp); 
    }  
    else if (x.currentStyle)
    {
        var y = x.currentStyle[styleProp];
    }                     

    return y;
}

传递元素id和style属性以获取函数。

例如:

var zInd = getStyle ( "normaldiv1" , "zIndex" );
alert ( zInd );

对于firefox,你必须传递z-index而不是zIndex

var zInd = getStyle ( "normaldiv1" , "z-index" );
 alert ( zInd );

Reference

答案 1 :(得分:6)

试试这个

window.getZIndex = function (e) {      
  var z = window.document.defaultView.getComputedStyle(e).getPropertyValue('z-index');
  if (isNaN(z)) return window.getZIndex(e.parentNode);
  return z; 
};

使用

var myZIndex = window.getZIndex($('#myelementid')[0]);

(如果父到达它将返回0)