Javascript appendchild不包括Body / Head中的元素

时间:2012-07-06 18:42:14

标签: javascript

我正在使用代码使用javascript文件将javascript添加到我的页面..

我的代码是:

 alert("works");


   addScript('http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js');
   addScript('js/pdttrack/jquery.titlealert.js');
   addScript('js/pdttrack/jquery.msgbox.min.js');

  function addScript(filename) {
      var tagPosition = document.getElementsByTagName('body');
      var scriptElement = document.createElement('script');
      scriptElement.setAttribute('type', 'text/javascript');
      scriptElement.setAttribute('src', filename);
      tagPosition.appendChild(scriptElement);
      alert("added "+ scriptElement);
  }

...但是最后一次警报没有开始..似乎

tagPosition.appendChild(scriptElement);

没有解雇所有人......

2 个答案:

答案 0 :(得分:4)

尝试更改:

var tagPosition = document.getElementsByTagName('body');

要:

var tagPosition = document.getElementsByTagName('body')[0];

由于getElementsByTagName返回NodeList Array,因此您需要为数组指定index/key

您也可以这样做:

var tagPosition = document.body;

了解有关MDN的更多信息:

答案 1 :(得分:4)

getElementsByTagName返回具有给定标记名称的元素的列表。该列表没有名为appendChild的方法。你想抓住第一个,并对其进行操作:

document.getElementsByTagName('body')[0]

更多信息: