简体   繁体   English

使用一个链接Javascript切换多个div

[英]Toggling multiple divs with one link Javascript

so, ive got 2 divs, one which is visible from start, and the other is hidden. 因此,我得到了2个div,一个div从一开始就可见,另一个隐藏了。 Im trying to work out the action so that when i click a single link, the first div disappears and the second appears, and to reverse on second click. 我正在尝试解决该问题,以便当我单击单个链接时,第一个div消失,第二个div出现,并在第二次单击时反转。 I have some knowledge of javascript, but zero knowledge of Jquery and those were the only questions i could find on here. 我对javascript有一定的了解,但对Jquery的了解为零,而这些是我在这里可以找到的唯一问题。

<script language="javascript">
function toggle() {
    var ele = document.getElementById("toggleContent");
    var text = document.getElementById("displayContent");
    if(ele.style.display == "block") {
            ele.style.display = "none;
        text.innerHTML = "blog posts";
    }
    else {
        ele.style.display = "block";
        text.innerHTML = "hide posts";
    }
}
</script>

this is what i have so far, which works for one div, but i dont know how to change this to work for 2 divs through the same link 这是我到目前为止的内容,适用于一个div,但是我不知道如何通过同一链接将其更改为适用于2 divs

您缺少引号,请添加第二个引号,如下所示:

ele.style.display = "none";

Use a class rather than an ID. 使用类而不是ID。

<style type="css/stylesheet">
#div1 {
    width:200px;
    height:100px;
    background:green;
}
#div2 {
    width:200px;
    height:100px;
    background:red;
}
.toggle {
    display:none;
}
</style>

<div id="menu"><a href="#" id="link">Toggle</a>

</div>
<div id="div1" class="toggle">
    <p class="displayContent">I'm some content 1</p>
</div>
<div id="div2" class="toggle">
    <p class="displayContent">I'm some content 2</p>
</div>

<script language="javascript">
      var a = document.getElementById("link");
      a.onclick = function () {
          var ele = document.getElementsByClassName("toggle");

          for (var i = 0; i < ele.length; i++) {
              var item = ele[i];
              if (item.style.display == "block") {
                  item.style.display = "none";
              } else {

                  item.style.display = "block";
                  item.innerHtml = "some content from " + i;
              }
          }
      };
</script>

Here is the JSFiddle solution http://jsfiddle.net/dUU7j/ 这是JSFiddle解决方案http://jsfiddle.net/dUU7j/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM