【发布时间】:2017-02-02 01:07:53
【问题描述】:
现在,我有一个 div,我做了一个内联样式,display:none。当用户单击一个按钮时,它将调用一个javascript函数并将div显示更改为相应的值。但是,我怎么能做这样的检查,因为他们一直返回 display:none 即使实际上显示是块。 这是我的javascript代码
function unhideDiv(){
var divDOC=document.querySelector('divContent');
var result = document.getComputedStyle(divDOC, '').display;
if(result=='none'){
divDOC.style.display="block";
}
else
{
divDOC.style.display="none";
}
}
这是我的html代码
<div id="divContent" style="display:none;" >
</div>
<button onclick="unhideDiv()">Click This </button>
您的帮助将不胜感激。提前致谢!
【问题讨论】:
-
只需使用 jQuery 的
.toggle()。如果您想自己执行此操作,请使用变量来存储状态。在您的函数中,切换变量,然后根据其新值设置样式。 -
您应该打开浏览器控制台检查错误。
querySelector('divContent')也应该是querySelector('#divContent')但既然你在这个问题中标记了 jQuery 为什么不直接使用toggle()...? -
如果您将
Element.style.display设置为您想要开始的内容,您将不必获得计算样式。或者想想 0 和 1。 -
@PHPglue 无论如何我可以解决这个问题吗?默认情况下,我希望隐藏 div。单击按钮后,它将设置显示为块。
-
@QCcccc 使用
window.getComputedStyle()而不是document.getComputedStyle()jsfiddle.net/r4t1b7ub
标签: javascript jquery html css