Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
201 views
in Technique[技术] by (71.8m points)

javascript - Style.display block/none problems

I was planning on making a personal project with JavaScript until I encountered a problem. I have a table that's "Invisible" with css "style.display=none" but when I try to make it "visible" I get "Uncaught TypeError: Cannot read property 'style' of null".

JavaScript Code below:

    function attack(){
        document.getElementById("list").style.display="block";
        document.getElementById("message").innerHTML="";
    }
    function fire(){    
        var y=document.getElementById("message");   
        var x=document.getElementById("demo");
        var z=document.getElementById("att");
        x.innerHTML=3;
   }
function disappear(){
    document.getElementById("list").style.display="none";   
    document.getElementById("message").innerHTML="<center>Wild SlayerZach has appeared.</center>";
}

HTML below:

<body onload="disappear()">
    <table border="1" >
        <tr>
            <td><img id="SHP" src="Hp/HPSlayerzach/hp2.png"/></td>
            <td></td>
            <td><img src="characters/slayerzach/slayerzach.png"/></td>
        </tr>
        <tr>
            <td><p id="demo"></p></td>
            <td ><img id="att" src="backgrounds/spacer1.png"/></td>
            <td></td>
        </tr>
        <tr>
            <td><img align="right" src="characters/fighterdan13/fighterDan13.gif"/></td>
            <td></td>
            <td><img id="FHP" src="hp/HPFighterdan13/hp1.png"/></td>
        </tr>
        <tr>
            <td id="message" colspan="2" background="backgrounds/backgroundText.png">
                <center><table border="0" id="list">
                    <tr>
                        <td style="font-family:verdana;font-size:15px"><center><a onclick="fire()">FIRE</a></center></td>
                        <td style="font-family:verdana;font-size:15px"><center>LIGHTNING</center></td>
                    </tr>
                    <tr>
                        <td style="font-family:verdana;font-size:15px"><center>WATER</center></td>
                        <td style="font-family:verdana;font-size:15px"><center>EARTH</center></td>
                    </tr>
                </table></center>
            </td>
            <td>
                <center><table border="0" background="backgrounds/backgroundmenu.png">
                    <tr>
                        <td><button id="butAtt" onclick="attack()">Attack</button></td>
                        <td><button id="butItems" disabled>Items</button></td>
                    </tr>
                    <tr>
                        <td colspan="2"><center><button id="butRun" style="width:110px; height:25px;" disabled>Run</button><center></td>
                    </tr>
                </table></center>
            </td>
        </tr>
    </table>      
</body>
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Demo FIDDLE

HTML

     <body onload="disappear()">
    <table border="1" >
        <tr>
            <td><img id="SHP" src="Hp/HPSlayerzach/hp2.png"/></td>
            <td></td>
            <td><img src="characters/slayerzach/slayerzach.png"/></td>
        </tr>
        <tr>
            <td><p id="demo"></p></td>
            <td ><img id="att" src="backgrounds/spacer1.png"/></td>
            <td></td>
        </tr>
        <tr>
            <td><img align="right" src="characters/fighterdan13/fighterDan13.gif"/></td>
            <td></td>
            <td><img id="FHP" src="hp/HPFighterdan13/hp1.png"/></td>
        </tr>
        <tr>
            <td colspan="2" background="backgrounds/backgroundText.png">
                <center><table border="0" id="list">
                    <tr>
                        <td style="font-family:verdana;font-size:15px"><center><a onclick="fire()">FIRE</a></center></td>
                        <td style="font-family:verdana;font-size:15px"><center>LIGHTNING</center></td>
                    </tr>
                    <tr>
                        <td style="font-family:verdana;font-size:15px"><center>WATER</center></td>
                        <td style="font-family:verdana;font-size:15px"><center>EARTH</center></td>
                    </tr>
                </table></center>
                <div id="message"></div>
            </td>
            <td>
                <center><table border="0" background="backgrounds/backgroundmenu.png">
                    <tr>
                        <td><button id="butAtt" onclick="attack()">Attack</button></td>
                        <td><button id="butItems" disabled>Items</button></td>
                    </tr>
                    <tr>
                        <td colspan="2"><center><button id="butRun" style="width:110px; height:25px;" disabled>Run</button><center></td>
                    </tr>
                </table></center>
            </td>
        </tr>
    </table>      
</body>

CODE

    function attack(){
        document.getElementById("list").style.display="block";
        document.getElementById("message").innerHTML="";
    }
    function fire(){    
        var y=document.getElementById("message");   
        var x=document.getElementById("demo");
        var z=document.getElementById("att");
        x.innerHTML=3;
   }
function disappear(){
    document.getElementById("list").style.display="none";   
    document.getElementById("message").innerHTML="<center>Wild SlayerZach has appeared.</center>";
}

Problem was you replace the message innerhtml on disappear.it remove the table which have id list.so i create div with id message inside the td and remove message id from the td.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...