为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我点“隐藏内容”没有反应啊?查了几遍都不知道问题在哪儿,求指教

<!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>


正在回答

5 回答

这两个函数不能改变外部变量mychar,需要分别在函数里定义赋值

0 回复 有任何疑惑可以回复我~

不对,你的javascript写在你的dom网页结构前面,当执行到var mychar = document.getElementById("con")时,整个网页解析器还没有解析到你的p标签那里,甚至连body都没解析到,所以这个mychar并没有真的拿到p标签的内容,只需把script放在你的p标签后面

0 回复 有任何疑惑可以回复我~

在最上面var mychar = document.getElementById("con");这句的代码执行顺序由于先预处理再执行就会相当于变成执行(1)var mychar;(2)mychar=document.getElementById("con");两句。由于提升特性仅会处理声明(1),会跳过执行语句(2),所以点击按钮的时候mychar是空对象,自然没反应了

要是就像放在外面的话,这样写也行:

http://img1.sycdn.imooc.com//5e7b00d800014b0408160679.jpg


0 回复 有任何疑惑可以回复我~
#1

慕前端6308622

一点看法不对勿喷~~ \O_O/
2020-03-25 回复 有任何疑惑可以回复我~

这两个函数不能改变外部变量mychar,需要分别在函数里定义赋值

0 回复 有任何疑惑可以回复我~


 var mychar = document.getElementById("con");

变量貌似没有传递进去


http://img1.sycdn.imooc.com//5e7034e300012d1006670266.jpg

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我点“隐藏内容”没有反应啊?查了几遍都不知道问题在哪儿,求指教

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信