css 如何通过单击按钮显示隐藏文本?

ehxuflar  于 2024-01-09  发布在  其他
关注(0)|答案(4)|浏览(152)
function myFunction() {
  var x = document.getElementById("myDIV");
  if (x.style.display = "none") {
    x.style.display = "block";
  } else {
    x.style.display = "none";
  }
}

个字符
在css文件中,我包含了命令:#myDIV{ display:none; },因为否则文本将不会在第一次隐藏。使用此代码,文本将在第一次隐藏,如果我单击按钮,它将显示文本。但如果我再次单击按钮,它应该关闭文本,但它不会。有人能帮助我吗?谢谢!

mjqavswn

mjqavswn1#

=是赋值。=====是比较。所以在if里面,把它改成这两个中的一个。
你也没有在提交的代码中正确关闭<div>
另一件事是你在CSS文件中设置了display: none。JavaScript没有访问这个值的权限,它只能访问元素的HTML标记中的style="..."。要解决这个问题,请检查它是否not隐藏,并在if/else块的两侧交换。

function myFunction() {
  var x = document.getElementById("myDIV");
  if (x.style.display == "block") { // `=` to `==` or `===`
    x.style.display = "none";
  } else {
    x.style.display = "block";
  }
}
#myDIV {
  display: none;
}
<ul>
  <li><button onclick="myFunction()">Try it</button>
    <div id="myDIV">
      <p>This is my DIV element.</p>
    </div> <!-- this div wasn't closed properly -->
  </li>
</ul>
ubby3x7f

ubby3x7f2#

设置为HTML

<div id="myDIV" style="display: none;"><p>This is my DIV element.</p></div>

字符串
这个JavaScript

function myFunction() {
    var x = document.getElementById("myDIV");
    if (x.style.display == "none") {
        x.style.display = "block";
    } else {
       x.style.display = "none";
      }
}


这将工作,因为display none默认情况下不是div元素,所以JavaScript将不会看到display none样式,也不会执行函数。因此,您需要指定style display none,函数将正常工作。

oipij1gg

oipij1gg3#

function myFunction() {
  var x = document.getElementById("myDIV");
  x.style.display = x.style.display != "block"?"block":"none"
}
#myDIV{ display: none; }
<ul>
  <li><button onclick="myFunction()">Try it</button>
    <div id="myDIV"><p>This is my DIV element.</p></div 
  </li>
</ul>
f5emj3cl

f5emj3cl4#

也可以使用details HTML element,它具有这种行为并且不需要任何JS。您可以按照自己的方式设置样式(请参阅同一链接)。
这将是:

<details>
  <summary>Try it</summary>
  <div>This is my DIV element</div>
</details>

字符串

相关问题