17

我有一个normaldiv1带有 class的 div 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?

4

2 回答 2

19

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

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 和样式属性以获取该函数。

例如:

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

对于 Firefox,您必须通过 z-index 而不是 zIndex

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

参考

于 2009-09-07T07:33:29.480 回答
8

尝试这个

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)

于 2014-06-10T08:42:30.047 回答