准确访问 DOM 元素的显示属性
检索 DOM 元素的显示属性看似简单,但可能会出现意想不到的结果。请考虑以下示例:
var a = (document.getElementById('a')).style; alert(a.display);
此警报可能会显示空字符串,而不是预期的“none”值。为什么会发生这种情况?
问题在于 CSS 属性值和应用的样式之间的差异。
CSS 属性值与应用的样式
.style.* 属性(包括 .display)映射到 CSS 属性值,而不是应用的样式。应用的样式反映了CSS级联的结果,可能与属性值不同。
在给定的示例中,元素“a”的显示属性在CSS属性样式中设置为“none”:
a { display: none; }
但是,由于外部样式表或动态修改,应用的样式可能会有所不同。
使用getCompatedStyle
要正确检索应用的样式,请使用 getCompulatedStyle() 方法。它接受一个元素作为参数,并返回一个包含计算的 CSS 样式的 CSSStyleDeclaration 对象。
var a = (document.getElementById('a')); alert(getComputedStyle(a).display); // Displays "none" as expected
替代方法:类切换
作为替代方案,请考虑使用用于切换元素可见性的 CSS 类。这种方法将表现与逻辑分离,避免了直接操作 CSS 属性的需要。
.hidden { display: none; }
var p = document.getElementById('p'); p.classList.toggle('hidden'); // Toggles the display property
通过使用 getCompulatedStyle 或类切换,您可以准确访问和控制 DOM 元素的显示属性。
以上是如何准确访问DOM元素的display属性?的详细内容。更多信息请关注PHP中文网其他相关文章!