2013-11-20 42 views
1

我遇到了一些需要使用原生JS(不是JQ)获取元素样式的问题。但是,使用像elem.style.property之类的东西会返回“”,因为实际的HTML元素没有设置它。使用原生Javascript获取样式表中设置的CSS样式

为了让事情更具体的,有一件事我需要得到的是元素的显示值,但elem.style.display给人“”,但我需要知道“块”或“无”

我明白为什么会这样;我只需要知道使用原生JS获得该值的正确方法。

谢谢。

回答

1

除非你已经设置直接的风格元素本身在HTML中,你需要为使用currentStylegetComputedStyle例如:

function getStyle(el,styleProp) 
{ 
    if (el.currentStyle) 
     return el.currentStyle[styleProp]; 

    return document.defaultView.getComputedStyle(el,null)[styleProp]; 
} 

因此,对于你的目的,你可以拨打:

getStyle(element, 'visibility'); 
+0

正是我需要的。谢谢。 – David