我已经在这里呆了几个小时了,我即将开始扯掉头发。基本上我需要做的是获取身体中出现的第一个元素,然后在它之前插入另一个元素。
我尝试了以下方法来获取第一个没有成功的元素(undefined或null)
window.document.body.firstChild
document.getElementsByTagName("body").firstChild
document.getElementsByTagName("body")[0].firstChild
window.document.documentElement.childNodes[1].childNodes[0]
以前的片段中有很多混合和匹配的尝试。我也试过让身体然后appendChild()也没有成功。
此处的任何帮助表示赞赏。提前谢谢。
答案 0 :(得分:14)
是的,document.body.firstChild
是正确的。您可能忽略了insertBefore是父元素的方法的事实,并且它在现有元素之前采用了新元素。例如:
var addedElement = document.createElement('p');
addedElement.appendChild(document.createTextNode('Hello, world!'));
var body = document.body;
body.insertBefore(addedElement, body.firstChild);
答案 1 :(得分:3)
你想要这样的东西:
var first = document.body.children[0];
var beforeEle = document.createElement("div");
beforeEle.innerHTML = "I'm the first element in the body!";
document.body.insertBefore(beforeEle, first);
答案 2 :(得分:1)
将元素添加到我可以使用的身体的最优雅的解决方案是单行:
document.body.insertBefore(element, dom.document.body.firstChild)