<!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>
因为
步骤一:var mychar = document.getElementById("con");这个语句是把p标签的对象赋值给mycahr。
而这个动作是通过点击“隐藏内容”和“显示内容”来执行的。
你点击隐藏内容执行hidetext()函数,而函数体内就执行了步骤一,然后执行mychar.style.display="none";并隐藏内容。
显示内容也是如此。
你把var mychar = document.getElementById("con");放到函数体外的时候,当你点击隐藏或显示内容按钮的时候,这个语句就没有执行嘛。
这样子就OK了。
var mychar = null; function hidetext() { mychar= document.getElementById("con"); mychar.style.display="none"; } function showtext() { mychar = document.getElementById("con"); mychar.style.display="block"; }
我也被你的问题困扰了很久....
body中最后加<script>var mychar = document.getElementById("con");</script>就好了
先执行p id=con后才能被getElementById获取到,放在head中先执行getElementById的话根本没有con这个元素。
函数是调用的,顺序不影响执行,所以放在函数中就没有顺序问题了。