Javascript 如何正确创建textNode并附加到特定位置?

Javascript 如何正确创建textNode并附加到特定位置?,javascript,html,function,dom,Javascript,Html,Function,Dom,我试图简单地将一个textNode附加到中,然后将它附加到一个的主体中,但是我得到了这个错误类型错误:bdy.appendChild不是bdy.appendChild(header)上的一个函数。这段代码有什么问题 JavaScript代码(嵌入头标记): function init() { var bdy = document.getElementsByTagName("body"); var header = document.createElement("h1"); va

我试图简单地将一个textNode附加到
中,然后将它附加到一个
的主体中,但是我得到了这个错误
类型错误:bdy.appendChild不是
bdy.appendChild(header)上的一个函数。这段代码有什么问题

JavaScript代码(嵌入头标记):

function init()
{
   var bdy = document.getElementsByTagName("body");
   var header = document.createElement("h1");
   var txt = document.createTextNode("Hello World!");
   header.appendChild(txt);
   bdy.appendChild(header);
}
<body onload="init();">
     <div id="prob3">
         <!--Created TextNode goes Here-->
     </div>
</body>
HTML:

function init()
{
   var bdy = document.getElementsByTagName("body");
   var header = document.createElement("h1");
   var txt = document.createTextNode("Hello World!");
   header.appendChild(txt);
   bdy.appendChild(header);
}
<body onload="init();">
     <div id="prob3">
         <!--Created TextNode goes Here-->
     </div>
</body>

您只需使用:

document.body.appendChild(header);

您的代码不起作用,因为:

var bdy = document.getElementsByTagName("body");
检索元素列表,而不是单个元素。你可以使用:

var bdy = document.getElementsByTagName("body")[0];

从列表中获取第一个元素,但这样做没有意义,因为
document.body
已经为您预定义了。

getElementsByTagName
为您获取节点列表,您不能附加到该列表中–您必须先取出该列表的第一个元素,
getElementsByTagName(“body”)[0].appendChild

但是每个浏览器都将
document.body
理解为body元素的快捷方式。

在此方法调用中:

 var bdy = document.getElementsByTagName("body");

注意“元素”是复数形式。这意味着它很可能返回类似数组的结构(在本例中是节点列表)。数组自然没有
.appendChild
方法。您可以通过在调试器中检查
bdy
来判断这一点,或者更直接地通过
console.log
-ing来判断这一点。

感谢您的澄清。您还可以执行诸如,
document.head
document.title
?我在玩弄如何提取
标记之外的内容。@TheAmazingKnight-
文档。广泛支持标题
<代码>文档.标题
仅在以IE9开头的IE中受支持。您可以将其用作此类内容的良好参考,因为它将告诉您哪些浏览器版本支持哪些内容。好的,我尝试使用JS动态创建标题,类似于正文,但不起作用<代码>变量标题=document.createElement(“标题”);var titleTxt=document.createTextNode(“实用文档”);titler.appendChild(titleTxt);文件.标题.附件(标题)
document.title.innerHTML=“Practical 340 Review JS”
也不起作用。
document.title=“不要把狗屎搞得太复杂”
…你已经听说了MDN,所以去好好利用它吧: