Javascript 为什么insertBefore不工作?

Javascript 为什么insertBefore不工作?,javascript,parent,addeventlistener,blur,appendchild,Javascript,Parent,Addeventlistener,Blur,Appendchild,我已经编写了如下所示的代码。我试图将元素“h45”置于“年龄”之上。不知何故,它不起作用,我得到了以下错误:“新的子元素包含父元素。”有人知道为什么会发生这种情况,以及我如何修复它吗?我是JavaScript新手,我不明白我做错了什么。提前谢谢大家` var lastName=document.getElementById(“lastName”); var firstName=document.getElementById(“firstName”); var age=document.getE

我已经编写了如下所示的代码。我试图将元素“h45”置于“年龄”之上。不知何故,它不起作用,我得到了以下错误:“新的子元素包含父元素。”有人知道为什么会发生这种情况,以及我如何修复它吗?我是JavaScript新手,我不明白我做错了什么。提前谢谢大家`

var lastName=document.getElementById(“lastName”);
var firstName=document.getElementById(“firstName”);
var age=document.getElementById(“alter”)
age.addEventListener(“模糊”,显示,假);
函数显示()
{
如果(/[^0-9]/.test(年龄值)){
var h45=document.createElement(“h4”);
var txttt=document.createTextNode(“bite geben Sie nur numern ein”);
h45.附肢儿童(txttt);
年龄、父节点、子节点(h45);
h45。插入前(h45,年龄);
h45.style.color=“红色”;
返回false;
}
否则{
返回true;
}

}
问题在这一行

      h45.insertBefore(h45,age);
你应该这样做:

      h45.parentNode.insertBefore(age, h45);

您正在h45中插入h45

h45.insertBefore(h45,age);
insertBefore语法:

var insertedElement = parentElement.insertBefore(newElement, referenceElement);
因此,您的变量age可能是一个表示警报的div容器,并且您已经在age中插入了带有此代码行的h45

age.parentNode.appendChild(h45);

h45.insertBefore问题(h45,年龄)
不能将同一元素附加到其内部。它将创建循环依赖关系

 h45.parentNode.insertBefore(age, h45);
见固定

一般语法是
parentNode.insertBefore(newNode,referenceNode)
。现在,当你写
h45.insertBefore(h45,age)时,试着解释一下哪个是哪个基本上,看起来你想在他之前插入h45。。。