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

为什么放在<head>标签里就不能用,而放在<body>标签里就可以使用呢?​

<script type="text/javascript">  
  var body= document.body;            
  var btn = document.createElement("input");  
  btn.setAttribute("type", "text");  
  btn.setAttribute("name", "q");  
  btn.setAttribute("value", "使用setAttribute");  
  btn.setAttribute("onclick", "javascript:alert('This is a text!');");      
  body.appendChild(btn);  
</script>  
为什么放在<head>标签里就不能用,而放在<body>标签里就可以使用呢?

提问者:慕粉木粉 2016-09-20 13:28

个回答

  • Amor丶安于命
    2016-09-20 17:46:03
    已采纳

    var body= document.body; 

    这句代码需要有body元素才有效,如果放在head里,这句代码会先执行,后面的body后执行,应该就是var body= document.body; 先执行了,但是没有找到body这个元素,所以无效。放在body后面的话,就会先加载body元素,页面上就存在body元素了,那么这句代码就能正常执行了。

  • 慕粉3744858
    2016-09-20 17:32:13

    在head标签里的话就先运行了这段js,body还没有加载