【发布时间】:2017-12-03 21:29:31
【问题描述】:
我的目标:在页面加载时隐藏我的 div,并使用仅使用 HTML/CSS/JavaScript 的按钮显示/隐藏 div。
我已经在 HTML 和 JavaScript 中设置了一个按钮来显示/隐藏我的 div,当 div 在页面加载时可见并且没有使用 CSS 隐藏时,它的效果很好。当我使用 CSS 隐藏 div 时 display: none; div 在页面加载时隐藏,但必须单击按钮两次才能使 div 可见。
HTML:
<button class="btn btn-link" id="btnLink" onclick="hideLink()">Hide
Content</button> <br><br>
<div id="myLink">
<h1>Div content here</h1>
</div>
CSS:
#myLink {显示:无;}
JavaScript:
function hideLink() {
var x = document.getElementById('myLink');
var b = document.getElementById('btnLink');
if (x.style.display === 'none') {
x.style.display = 'block';
b.childNodes[0].nodeValue="Hide Content";
} else {
x.style.display = 'none';
b.childNodes[0].nodeValue="Show Content";
}
}
【问题讨论】:
-
如果你
console.log(x.style.display)在页面加载时使用 CSS 隐藏,那么值是多少? -
我不确定如何检查值?
-
第一次点击btn时的div,在display中没有设置任何值,所以调用x.style.display既不是block也不是none,问题应该出在这里
-
CSS 块
#myLink {display: none;}表示该元素是隐藏的......但是,它没有内联样式 - 因此第一次点击将运行else块......改变你的逻辑,检查if (display !== 'block')而不是 -
更改逻辑有效,但现在不会隐藏 div....
标签: javascript html button