Html / Javascript - Div 显示和隐藏

Html / Javascript - Div Showing & Hiding

小布局 MDIV ADIV = BDIV

我试图通过点击来隐藏和显示 div,但失败得很惨。

单击函数 MA() 按钮时 = 显示 ADIV,隐藏 BDIV

单击功能 MB() 按钮时 = BDIV 显示和 ADIV 隐藏

function MA() {

  document.getElementById("ADIV").style.display = "";
  document.getElementById("BDIV").style.display = "none";


}

function MB() {

  document.getElementById("ADIV").style.display = "none";
  document.getElementById("BDIV").style.display = "";


}
<div id="MDIV">
  <button onclick="MA()">MA</button>
  <button onclick="MB()">MB</button>
</div>


<div id="ADIV">
  <button onclick="A()">ADIV</button>
</div>
<div id="BDIV">
  <button onclick="B()">BDIV</button>
</div>

旁注 另外,如果有人可以解释如何在页面加载时仅使用 MDIV - ADIV 进行加载。

提前干杯

您的代码已经在点击相应按钮时切换了两个元素的可见性。但是,您可能希望在元素可见时将其变为 style.display = block,而不是完全删除 display 样式。

为了默认隐藏 #BDIV,只需在您的两个函数之外 运行
document.getElementById("BDIV").style.display = "none";

这可以在下面的例子中看到:

document.getElementById("BDIV").style.display = "none";

function MA() {
  document.getElementById("ADIV").style.display = "block";
  document.getElementById("BDIV").style.display = "none";
}

function MB() {
  document.getElementById("ADIV").style.display = "none";
  document.getElementById("BDIV").style.display = "block";
}
<body>
  <div id="MDIV">
    <button onclick="MA()">MA</button>
    <button onclick="MB()">MB</button>
  </div>
  <div id="ADIV">
    <button onclick="A()">ADIV</button>
  </div>
  <div id="BDIV">
    <button onclick="B()">BDIV</button>
  </div>
</body>

希望对您有所帮助! :)

关于旁注:您应该为该 BDIV 提供默认样式 display: none

function MA() {

  document.getElementById("ADIV").style.display = "block";
  document.getElementById("BDIV").style.display = "none";


}

function MB() {

  document.getElementById("ADIV").style.display = "none";
  document.getElementById("BDIV").style.display = "block";


}
<div id="MDIV">
  <button onclick="MA()">MA</button>
  <button onclick="MB()">MB</button>
</div>


<div id="ADIV">
  <button onclick="A()">ADIV</button>
</div>
<div id="BDIV" style="display: none;">
  <button onclick="B()">BDIV</button>
</div>

编辑:我建议明确设置 display-属性 的值。使用 inlineblockinline-block,具体取决于您的需要。

向要在页面加载时隐藏的元素添加隐藏样式或CSS。我在这里添加了内联样式来隐藏 "BDIV".

除非万不得已,否则不要使用 JavaScript 在页面加载时设置样式。最好使用 CSS 或样式。

<html>
<head></head>
<body>

<div id="MDIV">
    <button onclick="MA()">MA</button>
    <button onclick="MB()">MB</button>
</div>                

<div id="ADIV">
    <button onclick="A()">ADIV</button>
</div>

<div id="BDIV" style="display: none;">
    <button onclick="B()">BDIV</button>
</div>

</body>
</html> 

<script>
//CACHE YOUR ELEMENTS

var mdiv = document.getElementById('MDIV');
var adiv = document.getElementById('ADIV');
var bdiv = document.getElementById('BDIV');

//helper functions
function hide(elm) { elm.style.display = 'none'; }
function show(elm) { elm.style.display = 'block'; }

function MA() {
  hide(adiv);
  show(bdiv);
}

function MB() {
  hide(adiv);
  show(bdiv);
}


</script>