如何在文档中所有元素之前插入一个元素?

3

我不认为我可以使用insertBefore(),因为我不知道DOM中哪个元素会首先出现。

编辑:

我正在尝试插入一个body标签(即<body>)。


你可以查找 DOM 并找到第一个元素,然后使用它 ;) - Gareth
6个回答

5
不使用库,可以尝试以下方法:

document.body.insertBefore(document.createElement("div"), document.body.firstChild);

问题是我试图插入正文,因为这些页面没有正文。 - 124697
页面必须有一个主体(由于开始和结束标签对于主体元素是可选的,因此浏览器应该自动生成一个)。 - Quentin
@user521180 这是一个 XML 文档吗?如果不是,你是如何在没有 body 的情况下呈现页面的? - Pat

4

好的,你可以始终检查以下内容:

  • 如果文档主体至少有一个子元素,使用 document.body.insertBefore([新元素], document.body.firstChild)

  • 如果文档主体没有子元素,只需使用 document.body.appendChild([新元素])


2
文档中的第一个元素将是 document.body.children[0]

那将是第一个节点,它可能不是元素(<body>foo<p>bar</p></body>)。不过使用.firstChild会更好。 - Quentin

0
document.body.innerHTML = '<body>'+document.body.innerHTML+'</body>';

这个简单的方法会用标签把当前HTML内容包裹起来。


0

使用.insertBefore()方法

document.body.insertBefore(newNode, document.body.children[0])

0

1
OP 没有提到 jQuery。 - Jeremy
你说得对。我假设insertBefore()是JQuery函数,而不是DOM函数。 - js1568

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接