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

来源:9-16 创建元素节点createElement

慕粉木粉

2016-09-20 13:28

<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>标签里就可以使用呢?

写回答 关注

2回答

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

    var body= document.body; 

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

    慕粉木粉

    非常感谢!

    2016-09-20 21:36:55

    共 1 条回复 >

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

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

    慕粉木粉

    谢谢,明白了

    2016-09-20 21:37:44

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题