如何使用 onclick() 和 JavaScript 中的函数来替换隐藏/显示 div1 与 div2 以及 div2 与 div3

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

我想使用 onclick() 替换 div,使其看起来从默认的 div1 到 div2 再到 div3,然后再回到 div1,一遍又一遍。

我所做的一些东西工作得很好,但我一直试图让它返回到默认条件(条件)并将函数 show() 从开始到结束和结束到开始旋转。

这是我的代码,工作得很好,但没有从开始到结束和结束到开始执行函数 show()

<!DOCTYPE html>
  <html>
  <body>
 <div style="margin-left:30%;margin-bottom:20%;">
    <div id="div1" style="display:block">
    <h2>one</h2>
</div>
<div id="div2" style="display:none">
    <h2>two</h2>
</div>
    <div id="div3" style="display:none">
    <h2>three</h2>
</div>



    <div id="div4" style="display:block">
    <h2>one under</h2>
</div>
<div id="div5" style="display:none">
    <h2>two under</h2>
</div>
    <div id="div6" style="display:none">
    <h2>three under</h2>
</div>

<button onclick=show()>click here</button>
</div>
</body>
<script>
function show() {
    let div1 = document.querySelector('#div1');
    let div2 = document.querySelector('#div2');
let div3 = document.querySelector('#div3');
    let div4 = document.querySelector('#div4');
    let div5 = document.querySelector('#div5');
let div6 = document.querySelector('#div6');


    if (div1.style.display == "block" && div4.style.display == "block") {
        div1.style.display = "none";
        div2.style.display = "block";
       div4.style.display = "none";
        div5.style.display = "block";
    } else {
        div1.style.display = "block";
        div2.style.display = "none";
     div4.style.display = "block";
        div5.style.display = "none";
    }
   if (div2.style.display == "block" && div5.style.display == "block") {
        div2.style.display = "block";
        div3.style.display = "none";
   div5.style.display = "block";
        div6.style.display = "none";
    } else {
        div2.style.display = "none";
        div3.style.display = "block";
 div5.style.display = "none";
        div6.style.display = "block";
    }
   if (div3.style.display == "block" && div6.style.display == "block") {
        div2.style.display = "none";
       div1.style.display = "none";
        div3.style.display = "block";
       div5.style.display = "none";
       div4.style.display = "none";
        div6.style.display = "block";
  } 
 
  }
 
</script>
</html>
javascript html css loops replace
1个回答
0
投票

这是使用纯 JS 和 document.querySelector 的非常古老的学校代码。

我对此代码的建议是使用 JQuery。

查看切换方法https://www.w3schools.com/jquery/eff_toggle.asp

© www.soinside.com 2019 - 2024. All rights reserved.