Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过JS抓取style.display属性仅在内联设置时有效?_Javascript_Css - Fatal编程技术网

Javascript 通过JS抓取style.display属性仅在内联设置时有效?

Javascript 通过JS抓取style.display属性仅在内联设置时有效?,javascript,css,Javascript,Css,我试图获取页面上div的DISPLAY属性。如果它是通过内联样式属性设置的,我似乎只能抓住它 如果我的JS是这样的: alert(document.getElementById('myDiv').style.display); 它将使用以下HTML警告“block”: <div id="myDiv" style="display: block;"></div> 和我的HTML: <div id="myDiv"></div> 那么我的警报是

我试图获取页面上div的DISPLAY属性。如果它是通过内联样式属性设置的,我似乎只能抓住它

如果我的JS是这样的:

alert(document.getElementById('myDiv').style.display);
它将使用以下HTML警告“block”:

<div id="myDiv" style="display: block;"></div>
和我的HTML:

<div id="myDiv"></div>

那么我的警报是一个空字符串

为什么会这样

这是CSS的一个“特性”。要真正获得样式,您需要使用(大多数浏览器)或element.currentStyle(Internet Explorer)

可以在以下位置找到实现window.getComputedStyle IE的修复程序:。此外,有关更多信息,请参见本页:(底部附近有一个脚本,用于跨浏览器getComputedStyle替代方案)

这应该适用于所有浏览器(基于上面QuirksMode链接中的函数):


你在加载HTML之前运行javascript吗?工作起来很有魅力!谢谢你的解释!我很惊讶到目前为止我还没有遇到这个问题。
<div id="myDiv"></div>
var elem = document.getElementById("myDiv");
if (elem.currentStyle) {
    var displayStyle = elem.currentStyle.display;
} else if (window.getComputedStyle) {
    var displayStyle = window.getComputedStyle(elem, null).getPropertyValue("display");
}
alert(displayStyle);