2009-09-07 6 views
9

J'ai un div normaldiv1 avec la classe normaldiv. J'essaie d'accéder à son index z par le biais de la propriété de style, mais il renvoie toujours 0 bien qu'il soit défini sur 2 dans la feuille de style.Obtenir l'index z d'un DIV en JavaScript?

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); 

Comment puis-je trouver le z-index d'un élément en utilisant JavaScript?

+1

je recommande vraiment utiliser une bibliothèque comme jQuery ou Prototype pour aider –

Répondre

18

Puisque l'index z est mentionné dans la partie CSS, vous ne pourrez pas l'obtenir directement via le code que vous avez mentionné. Vous pouvez utiliser l'exemple suivant. Passez votre ID d'élément et votre attribut de style pour accéder à la fonction.

Par exemple:

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

Pour Firefox, vous devez passer z-index au lieu de zIndex

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

Reference

+0

mais une « style » est trompeur. Vous pouvez * le lire directement s'il est en ligne, vous ne pouvez pas le faire si c'est CSS déclaré. C'est la partie CSS qui compte. – annakata

+0

Merci. Edité mon message. – rahul

+0

Mieux vaut ne pas utiliser 'currentStyle' non standard avant' getComputedStyle' standard. – kangax

5

essayer

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

utilisation

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

(si le parent arrive à la racine il retournera 0)

+0

cela fonctionne très bien! '' 'fenêtre.document.defaultView.getComputedStyle (e) .getPropertyValue ('z-index'); '' ' – pbojinov

+2

@kernowcode Pourquoi est-ce que' 'defaultView'' est nécessaire? –

+0

Ce n'est pas; 'window.document.defaultView' est le même que' window'; et vous pouvez également supprimer la fenêtre dans tous ces cas. – 1j01