在行走DOM树时,确定元素是块级还是与JavaScript内联

Lon*_*ner 2 html javascript dom

可能重复:
检测DOM元素的内联/块类型

在走HTML5 DOM树时,我想确定每个元素是块级元素还是内联元素.

var divElement = document.getElementById('foo');
alert(divElement.style.display)
alert(window.getComputedStyle(divElement, null).getPropertyValue('display'))
Run Code Online (Sandbox Code Playgroud)

我看到第一个警告显示空字符串,而第二个警告显示"阻止",所以我认为第二个技术是我需要使用的.这是一个jsfiddle:http://jsfiddle.net/UaFpv/

我想知道是否有任何缺点用window.getComputedStyle(divElement, null).getPropertyValue('display')做我的工作,比如跨浏览器的兼容性问题,等有没有可以解决这个问题的任何其他技术?

Rob*_*b W 5

旧的IE版本不支持getComputedStyle.对于IE,请使用以下currentStyle属性:

divElement.currentStyle['display'];
Run Code Online (Sandbox Code Playgroud)

在您的代码中实现:

var divElement = document.getElementById('foo');
var displayStyle;
if (divElement) { // Only if the element exists
    if (window.getComputedStyle) {
        displayStyle = window.getComputedStyle(divElement, null).getPropertyValue('display');
    } else {
        displayStyle = divElement.currentStyle.display;
    }
}
alert(displayStyle);
Run Code Online (Sandbox Code Playgroud)