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

这一块的代码这样写为什么不可以呢?

<script type="text/javascript"> 

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

    function hidetext(){

         mychar.style.display="none";

         }

    function showtext(){

         mychar.style.display="block";

         }

</script> 


提问者:外婆叫我海椒虫 2014-12-13 22:51

个回答

  • _潇潇暮雨
    2014-12-14 13:13:55
    已采纳

    你把这段代码放在

    <p id="con">做为一个Web开发师来说,如果你想提供漂亮的网页、令用户满意的上网体验,JavaScript是必不可少的工具。</p>

    之后就行了,因为浏览器加载顺序的问题,解析到var mychar = document.getElementById("con");的时候还没有创建p标签呢。

  • Tracy_
    2014-12-14 13:36:37

    嗯,其实你的想法不错,但是浏览器加载html是自上而下的,如果照你这么写,  var mychar = document.getElementById("con");这句话会报错的,因为这个时候还没加载到con,所以会有问题,可以稍稍加以修改就可以

    window.onload = function(){
        var mychar = document.getElementById("con");
        function hidetext(){
             mychar.style.display="none";
             }
        function showtext(){
             mychar.style.display="block";
             }
        
    }

    加了window.load 就可以保证dom加载完成了。

    或者按照上面那位童鞋的写法,将js代码放在body最下面,这样顺序执行的时候也不会报错。