使用不在同一个 div 中的按钮隐藏/显示 div

Posted

技术标签:

【中文标题】使用不在同一个 div 中的按钮隐藏/显示 div【英文标题】:hide / show div with a button not in the same div 【发布时间】:2021-12-08 11:28:56 【问题描述】:

我正在为我的 wordpress 网站使用 elementor,我希望在第一个 div(部分)中有一个按钮,用于控制是否显示第二个单独的 div(部分)。我尝试使用复选框 hack,但只有当复选框作为内容位于 div 中时它才有效https://css-tricks.com/the-checkbox-hack/

有没有使用 CSS 甚至 javascript 的解决方案?如果您建议我使用 javascript,我将放入我的 function.php 文件中,因为我是 javascript 的初学者,请您将我必须实现的所有功能写入我的 function.php 文件中。

基本意思是:

<div>button</div> <div>content to show and hide on click on the button</div>

最好的问候, 克莱门特

【问题讨论】:

您需要自己尝试一些东西,如果遇到困难,请回到这里寻求支持。 嗨!您应该避免专门询问所有代码。无论如何,你可能会收到它,但看起来你不是来这里学习的,而是让别人完成你的工作。其次,首先搜索谷歌(字面意思是搜索onclick hide 的第一个结果是w3schools.com/howto/howto_js_toggle_hide_show.asp):) 您好,很抱歉,如果我看起来需要提供服务而不是支持。相信我,我在这里问之前挖过。而且您的链接没有出现在我的搜索中,但似乎可以完成这项工作!关于询问整个代码,我询问它是为了了解它是如何工作的,因为我不知道如何启动它。无论如何,我会牢记你的建议,以备不时之需。最好的问候 【参考方案1】:

你可以使用 Jquery:

1-给你的DIV添加一个ID

<div id = "btn_show"> button </div> <div id = "show"> content to show and hide on click on the button </div>

2-调用jquery显示

$("#btn_show").click(function()
 $("#show").show();
  //or
 $("#show").hide();
);

而 jquery 你可以用 CDN 调用它

<script src="https://code.jquery.com/jquery-3.6.0.js"</script>

【讨论】:

【参考方案2】:

在没有任何库的 javascript 中,这可能非常简单,但您需要在您的 div 和您的按钮上放置一个 id。

<div id="myButton">button</div> 
<div id="myDiv">
  content to show and hide on click on the button
</div>

然后你只需添加一个像这样的脚本部分:(它只需要在你的 div 和 DOM 中的按钮之后)

<script>
var myDiv = document.getElementById('myDiv');
var myButton = document.getElementById('myButton');
myButton.addEventListener('click', e => 
  myDiv.classList.toggle('visible'):
);
</script>

最后,你需要一个这样的 CSS:

.visible 
  display: none;


【讨论】:

为什么不至少对按钮使用onclick?虽然 css togle 类可能是一个不错的想法,但您至少应该使用 onclick 而不是 id 和 addEventListener。 是的,但我从不使用 onclick。所以我真的不知道它是如何真正工作的。为了确保我给他的代码有效,我没有使用它^^。但我会看看谢谢。【参考方案3】:

感谢您的所有回答!这是我使用的:

<button onclick="myFunctionopenclose()">Click Me</button>
<div id="myDiv" style="display:none;">content to hide and show</div>
<script> function myFunctionopenclose() 
var x = document.getElementById("myDiv");
if (x.style.display === "block") 
    x.style.display = "none";  
else 
x.style.display = "block"; 

最好的问候, 克莱门特

【讨论】:

以上是关于使用不在同一个 div 中的按钮隐藏/显示 div的主要内容,如果未能解决你的问题,请参考以下文章

React js - 显示或隐藏 div

div隐藏和显示

通过按钮和JavaScript显示或隐藏div

如何通过将鼠标悬停在Javascript中的三个按钮之一来显示和更新隐藏的div元素?

Javascript:使用切换按钮隐藏和显示 div 标签

使用切换或显示/隐藏切换 Div 内容