问答详情
源自:9-16 创建元素节点createElement

为什么放到<head>里面就不执行

<script type="text/javascript">

var main = document.body;

//创建链接

function createa(url,text)

{

    var link=document.createElement('a');

    link.setAttribute('href',url);

    link.innerHTML=text;

    link.style.color='red';

    main.appendChild(link);

}

// 调用函数创建链接

createa('http://www.imooc.com','慕课网');

</script>  


这段代码放到body里面没问题,放到head里面就失效了,为什么会这样

提问者:慕仔1561325 2019-01-19 14:12

个回答

  • 毒素100
    2019-04-18 23:54:54

    放在<head>里的代码一般是预加载,只执行一次,并且浏览器是按照先后顺序编译的,要把代码再次加载,要加把代码都放到window.onload=function(){  }的大括号里,代码如下:

    <head>

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

    <title>无标题文档</title>

    <script type="text/javascript">

    window.onload=function(){

    var main = document.body;

    //创建链接

    function createa(url,text)

    {

        var link=document.createElement('a');

        link.setAttribute('href',url);

        link.innerHTML=text;

        link.style.color='red';

        main.appendChild(link);

    }

    // 调用函数创建链接

    createa('http://www.imooc.com','慕课网');

    }

    </script>  

    </head>


  • 逃离外包
    2019-01-29 13:40:24

    <!DOCTYPE HTML>

    <html>

    <head>

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

    <title>无标题文档</title>

    </head>

    <body>

    <script type="text/javascript">

    var main = document.body;

    //创建链接

    function createa(url,text)

    {

        var a=document.createElement("a"); 

        a.href=url;

        a.innerHTML="慕课网";

        main.appendChild(a);

        

    }

    // 调用函数创建链接


    createa("http://www.imooc.com","慕课网");

    </script> 

    </body>

    </html>


  • 慕九州4215743
    2019-01-19 17:57:31

    createa('http://www.imooc.com','慕课网');

    是调用函数的文本。文本应该在body里。head的文本不显示。