【发布时间】:2020-04-28 19:40:56
【问题描述】:
我正在编写一个基本的显示/隐藏函数,它显示一个内容块并将一些文本从“显示更多好处”更改为“显示更少好处”(反之亦然)。
但由于某种原因,当我第一次单击“显示更多好处”时,它需要单击两次才能运行。之后,一键来回切换就好了。
这是我的代码:
<div class="content" id="content"><br>
<p><span class="benefit-stat">$2B</span> lorem</p>
<p><span class="benefit-stat">$2B</span> ipsum</p>
<p><span class="benefit-stat">$100</span> ipsum</p>
<p><span class="benefit-stat">32%</span> ipsum</p>
</div>
<p class="benefits-drop" id="text" onclick="showHide()">See More Benefits</p>
<script>
function showHide(c,t) {
var c = document.getElementById("content");
var t = document.getElementById("text");
if (c.style.display === "none") {
c.style.display = "block";
t.innerHTML = 'See Less Benefits';
} else {
t.innerHTML = 'See More Benefits';
c.style.display = "none";
}
}
</script>
为什么会发生这种情况?我将如何解决它?
【问题讨论】:
-
console.log(c.style.display, c.style.display === "none") -
呃:“未捕获的类型错误:无法读取未定义的属性“样式”-(然后是很长的 id,因为这是一个 hubspot 页面)
-
所以表示找不到你引用的元素
标签: javascript html css show-hide