js 函数作用域链的问题


<!DOCTYPE HTML>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

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

根据作用域链,hidetext()里面没有mychar应该向上一级搜索啊,为什么不对呢?

wyx0k
浏览 1404回答 2
2回答

乱舞的旋律

页面是按html顺序渲染下来的,script标签加载了,代码就会执行,然而这时候还没有con这个东西,要么放body尾部,要么所有js代码 放到window.onload 这个数据处理程序里

蜂之谷

把 script代码 放到 body结束标签之后
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript