Clever Geek Handbook

Javascript toggle button not working

<input tyoe="button" onclick="toggle()" value="Show Spoilers" />
<div id="spoilers" style="display: none;">Some spoilers</div>
<script>
function toggle(){
   var div = document.getElementById("spoilers");
   if(div.style.display = "none"){
      div.style.display = "block";
   } else {
      div.style.display = "none";
   }
}
</script>

      

it worked to show but can't hide the div. So it only worked so as not to show it? Any thing I did wrong? Thanks in advance.

+3
javascript button toggle


Bido262 05 Aug '15 at 9:11
source to share


3 answers


You forgot equal (=) in your if

function toggle()
{
    var div = document.getElementById("spoilers");
    if(div.style.display === "none"){
        div.style.display = "block";
    } else {
        div.style.display = "none";
    }
}

      



Example: http://jsfiddle.net/90Lw12cf/

+4


ImmortalPC 05 Aug '15 at 9:15
source to share


function toggle () {
    var div = document.getElementById('spoilers');

    div.style.display = div.style.display === 'none' ? 'block' : 'none';
}

      



+2


Evgeny Samsonov 05 Aug '15 at 9:20 am
source to share


If you have spoilers with "s" you should use class instead of ID.

Then I recommend not to do it directly from JavaScript, but add a class hidden with a css property display:none

.

function toggle(){ 
    var divs = document.getElementsByClassName("spoilers");
    for(var i = 0; i > divs.length i++){
        if(divs[i].classList.contains("hidden")) {
            divs[i].classList.remove = "hidden";
        } else { 
            divs[i].classList.add = "hidden"; 
        }
    }  
}

      

0


Mteuahasan 05 Aug '15 at 9:21
source to share






More articles:

    Removed postRemoved postRemoved postRemoved postRemoved postRemoved postRemoved postRemoved postRemoved postRemoved post

All Articles

Daily Blog | 2020

Green Geek Media (GGM)
1298 Despard Street
GA 30344 East Point, USA
404-763-3837