JavaScript.style.display?
我想从HTML元素中获取显示属性。当我编写内联CSS时,它可以工作,但如果我使用类,它就不能工作 这项工作: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
<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');