问答详情
源自:3-5 显示和隐藏(display属性)

能否只设定一个变量

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>display</title>
    <script type="text/javascript"> 
        var mychar = document.getElementById("con");
        function hidetext()  
		{  
		
        mychar.style.display="none";
		}  
		function showtext()  
		{  
		
        mychar.style.display="block";
		}
    </script> 
</head> 
<body>  
    <h1>JavaScript</h1>  
    <p id="con">做为一个Web开发师来说,如果你想提供漂亮的网页、令用户满意的上网体验,JavaScript是必不可少的工具。</p> 
    <form>
       <input type="button" onclick="hidetext()" value="隐藏内容" /> 
       <input type="button" onclick="showtext()" value="显示内容" /> 
    </form>
</body> 
</html>

为什么这样不行

两个函数都设定了mychar变量来存储函数,不能不简化成1个。我试着把变量写在了函数之前,结果函数失效,是不是意味着函数里使用的变量只能在内设定,不能取用函数外的变量?

提问者:qq_秋叶_1 2015-08-17 20:52

个回答

  • 伊兮尘昔
    2015-08-18 09:50:06
    已采纳

    因为html代码是顺序加载的,在执行 var mychar = document.getElementById("con");这行代码的时候,body中的内容还没加载,获取到的是null

  • ciloi
    2015-09-11 15:02:59

    貌似这样也不行,只有把js代码放到body的最后才可以……但是为什么window.onload也不行了哇???

  • ciloi
    2015-09-11 14:47:42

    前面加一个window.onload=function{}应该就可以了