JavaScript.style.display?

JavaScript.style.display?,javascript,Javascript,我想从HTML元素中获取显示属性。当我编写内联CSS时,它可以工作,但如果我使用类,它就不能工作 这项工作: <p id="p1" style="display:none;">This is some text.</p>​ <script>alert(document.getElementById("p1").style.display);</script> 这是一些文本​ 警报(document.getElementById(“p1”).sty

我想从HTML元素中获取显示属性。当我编写内联CSS时,它可以工作,但如果我使用类,它就不能工作

这项工作:

<p id="p1" style="display:none;">This is some text.</p>​
<script>alert(document.getElementById("p1").style.display);</script>
这是一些文本

​ 警报(document.getElementById(“p1”).style.display);

这不起作用:

<style>.deneme{ display: none; }​</style>
<p id="p1" class="deneme">This is some text.</p>​
<script>alert(document.getElementById("p1").style.display);</script>
.deneme{display:none;}​
这是一些文本

​ 警报(document.getElementById(“p1”).style.display);


为什么??是否有可能使第二种情况与第一种情况类似?如何修复它?

使用
getComputedStyle()
-


看看getComputedStyle()/getPropertyValue()。property.style.display将只返回您前面提到的内联样式属性

var yourDisplay = window.getComputedStyle(document.getElementById('yourID'), null).getPropertyValue('display');
您需要获得“计算样式”(即“最终结果”),而不是您的设置


我已经创建了一个JSFIDLE(非工作原稿的一个分支)来帮助您:

如果链接失效,请使用链接中的相关信息更新您的问题。您已经得到了正确答案,其中提到了
getComputedStyle
。但是,这在较旧的Internet Explorer版本中不起作用。对于此浏览器,您可以使用
element.currentStyle.display
@Neal我已经为OP做了这些,但是我的编辑被覆盖了。。。再次编辑。@bfavareto啊,很有趣。
var yourDisplay = window.getComputedStyle(document.getElementById('yourID'), null).getPropertyValue('display');