var mychar=document.getElementById("con");
function showtext() { mychar.style.display="block"; }
function hidetext() { mychar.style.display="none"; }
这样为什么会报mychar是null呢?mychar不是全局变量吗?这段代码是单独写在js文件里的,<script></script>是放在<head></head>中的。
你是把js写到了attempt.js了吗?如果是的话,看一下你的路径对吗
注释掉的都可以,就是我提问的这种不行。我用360安全浏览器8.1和火狐都不行 /*function showtext() { document.getElementById("con").style.display="block"; } function hidetext() { document.getElementById("con").style.display="none"; }*/ var mychar = document.getElementById("con"); function hidetext() { mychar.style.display="none"; } function showtext() { mychar.style.display="block"; } /*function hidetext() { var mychar = document.getElementById("con"); mychar.style.display="none"; } function showtext() { var mychar = document.getElementById("con"); mychar.style.display="block"; } */
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>attempt</title> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript" src="attempt.js"></script> </head> <body> <h3>Hello</h3> <p id="con">I love javascript</p> <form> <input type="button" onclick="hidetext()" value="隐藏内容" /> <input type="button" onclick="showtext()" value="显示内容" /> </form> </body> </html>
是全局变量,可能是你获取的元素写错了吧
这么写是全局变量没有错,你的节点是不是获取的有问题,检查一下