【发布时间】:2018-05-22 05:49:53
【问题描述】:
我为<div>制作了一些js代码来显示或消失。
[src.js]
openSearch = () => {
var con = document.getElementById("search-bar");
if(con.style.display == 'none') {
con.style.display = 'block';
} else {
con.style.display = 'none';
}
}
[style.css]
#search-bar {
position: absolute;
height: 4em;
width: 20em;
background-color: white;
border: 1px solid black;
padding: 1.5rem;
right: 0;
display: none;
}
并将onclick="openSearch()" 添加到<a> 标签。
当我第一次点击<a> 标签时,它不起作用。
但是再次点击,就可以正常使用了。
所以我尝试 console.log(document.getElementById("search-bar").style.display,它抛出“”(空白)。
我想知道我将display: none 定义为search-bar 但为什么search-bar 的初始style.display 是空白值?
我该如何解决?
【问题讨论】:
-
您忘记添加 html 部分,但我的猜测是该 div 上没有样式
display:none。当您检查con.style.display时,它第一次是空的。div.style不是计算出来的样式,而是div上style属性的值。 -
.style属性仅包含直接在元素上设置的样式。要包含样式表应用的那些,you can usegetComputedStyle(). -
感谢您的评论。我会进一步调查。
-
你可以做到纯 CSS。
标签: javascript html css