我在JS中有一个隐藏解析元素的函数:
function hide(id){ document.getElementById(id).style.display = "none"; }
如何创建一个将元素返回到默认样式值的函数.例如,一个div显示属性是“block”,因为一个图像是“inline-block”,其他元素是“inline”或者列表是“list-item”如何将它们恢复为默认状态?
function show(id){ document.getElementById(id).style.display = "?????"; }
我知道如何在Jquery中执行它,但它不是一个选项.
在CSS中,可能有元素的样式,包括style:none,需要被覆盖到默认值.
由于我的示例中有CSS,style.display =”消除了使用JS添加的样式,而是返回到CSS中添加的任何样式,即使在使用CSS分配样式之前,我也希望将其恢复为默认值.
我尝试了这一点,因为在其中一个意见的链接中建议:
elem = document.getElementById(id); var theCSSprop = window.getComputedStyle(elem,null).getPropertyValue("display");
但在这种情况下,’CSSprop’为div返回“none”,当我期望“block”
有任何想法吗?
谢谢.
解决方法
您需要将其分配给空值:
document.getElementById(id).style.display = "";
或使用removeProperty方法:
document.getElementById(id).style.removeProperty( 'display' );
但请注意,removeProperty将无法在IE< 9上运行. 如果你想获得原始的CSS值,你可能需要从空的< iframe>元件.我在jsFiddle上创建了example,如何使用getComputedStyle获取当前值,并在jsFiddle上获取iframe值.
请注意,getComputedStyle不支持旧版本的IE.它支持IE9.
对于IE8,您应该使用Element.currentStyle