在浏览HTML5 DOM树时,我想确定每个元素是块级元素还是内联元素。
var divElement = document.getElementById('foo');
alert(divElement.style.display)
alert(window.getComputedStyle(divElement, null).getPropertyValue('display'))
我看到第一个警告显示空字符串,而第二个警告显示“阻止”,所以我认为第二个技术是我需要使用的。这是一个jsfiddle:http://jsfiddle.net/UaFpv/
我想知道使用window.getComputedStyle(divElement, null).getPropertyValue('display')
来完成我的工作是否有任何不利之处,例如跨浏览器兼容性问题等。还有其他技术可以解决这个问题吗?
答案 0 :(得分:5)
旧IE版本不支持getComputedStyle
。对于IE,请使用currentStyle
属性:
divElement.currentStyle['display'];
在您的代码中实现:
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);