最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How can I hide a div until a button is clicked? - Stack Overflow

programmeradmin2浏览0评论

I'm trying to create 3 divs that are hidden when the page load, so that when I click their respective buttons they show up, however, no matter what I do, I cannot get them to show up with the button click.

Here is the relevant part of the code:

My div and button:

<button onclick="TestsFunction()">Tests</button>

<div id="TestsDiv" style="display:none">
    tests here!
</div>

And the JS used to show it:

function TestsFunction() {
    var T = document.getElementById("TestsDiv");
    T.style.display = "none";}

I can successfully hide the div when I load the page, however after I click the button it doesn't show up again.

I tried

window.onload = function(){
    document.getElementById('TestsDiv').style.display = 'none';
}

Instead of style="display:none" on the div to see if the way I hid it was the problem, but the div still wouldn't show up.

I'm a beginner and I'm not good with JS, HTML or PHP, if possible can someone both help and explain my mistake? Do I need something else in my code? I tried reading similar threads but the solutions were all too complicated for my understanding and I ended up not being able to fix my problem. Thank you!

I'm trying to create 3 divs that are hidden when the page load, so that when I click their respective buttons they show up, however, no matter what I do, I cannot get them to show up with the button click.

Here is the relevant part of the code:

My div and button:

<button onclick="TestsFunction()">Tests</button>

<div id="TestsDiv" style="display:none">
    tests here!
</div>

And the JS used to show it:

function TestsFunction() {
    var T = document.getElementById("TestsDiv");
    T.style.display = "none";}

I can successfully hide the div when I load the page, however after I click the button it doesn't show up again.

I tried

window.onload = function(){
    document.getElementById('TestsDiv').style.display = 'none';
}

Instead of style="display:none" on the div to see if the way I hid it was the problem, but the div still wouldn't show up.

I'm a beginner and I'm not good with JS, HTML or PHP, if possible can someone both help and explain my mistake? Do I need something else in my code? I tried reading similar threads but the solutions were all too complicated for my understanding and I ended up not being able to fix my problem. Thank you!

Share Improve this question edited May 13, 2019 at 11:40 Kamil Kiełczewski 92.4k34 gold badges394 silver badges370 bronze badges asked May 13, 2019 at 11:34 DeSynthDeSynth 571 gold badge1 silver badge5 bronze badges 1
  • 1 T.style.display = "none"; should be T.style.display = ""; – Maheer Ali Commented May 13, 2019 at 11:35
Add a comment  | 

5 Answers 5

Reset to default 10

You need to set display to block (or something else) but not hide when button is clicked!

function TestsFunction() {
    var T = document.getElementById("TestsDiv");
    T.style.display = "block";  // <-- Set it to block
}
<button onclick="TestsFunction()">Tests</button>

<div id="TestsDiv" style="display:none">
    tests here!
</div>

try

function TestsFunction() { TestsDiv.style.display = 'block' }

function TestsFunction() { TestsDiv.style.display = 'block' }
<button onclick="TestsFunction()">Tests</button>

<div id="TestsDiv" style="display:none">
    tests here!
</div>

You need to adapt your function to toggle the display of the div. Currently it is only hiding it - but if its already hidden, remove the display = "none" to show it again. You remove it by setting the display style to an empty string (which makes it default).

function TestsFunction() {
    var T = document.getElementById("TestsDiv"),
        displayValue = "";
    if (T.style.display == "")
        displayValue = "none";

    T.style.display = displayValue;
}
<button onclick="TestsFunction()">Tests</button>

<div id="TestsDiv" style="display:none">
    tests here!
</div>

If you only want it to be shown, and not to be able toggle display on and off, just set it to the empty string right away.

function TestsFunction() {
    document.getElementById("TestsDiv").style.display = "";
}
<button onclick="TestsFunction()">Tests</button>

<div id="TestsDiv" style="display:none">
    tests here!
</div>

You should look into jQuery's hide() and show() methods. They take care of setting the styles for you.

https://www.w3schools.com/jquery/jquery_hide_show.asp

do like this =>

function TestsFunction(){
$("#TestsDiv").css("display","block")
}

before that you should include jquery cdn. thank you.

发布评论

评论列表(0)

  1. 暂无评论