单击按钮时切换元素的可见性

问题描述 投票:0回答:3

我正在尝试执行一个练习,通过访问元素的 ID 来切换元素的可见性。当我点击它时,我可以让它消失。但是,我不明白我的代码有什么问题,因此单击时它不会重新出现。

let button = document.getElementById("button");

document.getElementById("button").onclick = function() {
  if (button.style.display === "none") {
    button.style.display = "block";
  } else {
    button.style.display = "none";
  }
};
#button {
  display: block;
}
<p id="p1Text">Hello world</p>
<button id="button">Buttonni</button>

javascript dom
3个回答
1
投票

单击按钮后,您将使其消失。这就是你想让消失的意思吗?

或者您是否试图让以下段落在单击按钮时消失?

<p id="p1Text">Hello world</p>

如果您想使其消失,则必须将

getElementById
更改为正确的 ID。

目前,您正在做:

let button = document.getElementById("button"); 

这是获取按钮的ID,而是获取段落的元素

let button = document.getElementById("p1Text"); 

这应该可以解决问题


1
投票

我会参考使用 element.classList.toggle 来实现这个场景。

https://www.w3schools.com/howto/howto_js_toggle_class.asp

const hello = document.querySelector('.hello');

document.getElementById("button").onclick = function() {
  hello.classList.toggle('hidden');
};
.hidden {
  display: none;
}
<p id="p1Text" class="hello">Hello world</p>
<button id="button">Buttonni</button>


0
投票

如果通过“消失”您的意思是段落消失而不是上面代码中提到的按钮,这应该可以解决您的问题。

请检查下面的代码。我希望它能帮助你...

const paragraph = document.getElementById("p1Text");
const button = document.getElementById("button");
button.addEventListener("click",() => {
if(paragraph.style.display === "none" || paragraph.style.display ==="") {
    paragraph.style.display = "block";
} else {
    paragraph.style.display = "none";
}
});
© www.soinside.com 2019 - 2024. All rights reserved.