如果我将搜索框显示设置为阻止然后使用 JavaScript 我可以将其设置回无,但我有以下代码,但是在显示无后,我无法将其设置为阻止显示。
#searchbox
{
width: 50%;
height: 400;
float: left;
display: none;
}
document.getElementById('searchbox').style.display = 'block';
如果我将搜索框显示设置为阻止然后使用 JavaScript 我可以将其设置回无,但我有以下代码,但是在显示无后,我无法将其设置为阻止显示。
#searchbox
{
width: 50%;
height: 400;
float: left;
display: none;
}
document.getElementById('searchbox').style.display = 'block';
你的 JavaScript 代码很好,你只需要确保你在元素存在后运行。这意味着响应用户生成的事件,或者只是script
在标记中使用比元素更靠后的#searchbox
元素。
例如,这不起作用:Live Example | 资源
<script>
document.getElementById('searchbox').style.display = 'block';
</script>
<!-- ...other stuff... -->
<div id="searchbox">I'm hidden</div>
...因为在调用document.getElementById
.
但这确实有效:Live Example | 资源
<div id="searchbox">I'm hidden, but then shown</div>
<!-- ...other stuff... -->
<script>
document.getElementById('searchbox').style.display = 'block';
</script>
...因为该元素确实存在。
这是通常建议将脚本放在文档末尾,就在结束</body>
标记之前的几个原因之一。
更多的:
旁注:您的 CSS 中有错误。height: 400;
应该是height: 400px;
(你需要单位)。所以我想如果你在 div 中没有任何内容,你可能想知道为什么你看不到它(原因是:因为它没有高度)。
如果它不工作,然后使用
<script>
document.getElementById('searchbox').style.visibility = 'hidden';
</script>
也许它会帮助你
好吧,然后您可以定义两个 JavaScript 函数,一个用于隐藏,一个用于显示您的搜索框,正如您所说,如果您最初将其设置为阻止,它就可以正常工作。
好的,然后使用该hide
功能在 pageload 事件和 onclick 事件调用隐藏功能时隐藏您的搜索框。它肯定会奏效。
#searchbox
{
width:50%;
height:400;
float:left;
display:block;
}
function hide()
{
document.getElementById('searchbox').style.display = 'none';
}
function show()
{
document.getElementById('searchbox').style.display = 'block';
}
它应该设置为.style.display = "inline";
而不是block
. 块用于div
和p
(一直穿过)。内联是为了span
和 input
(不是一直跨越)。