插入元素失败是怎么回事?

这个pnode是一个div 它里面还有很多子div 我想往它所有子元素的前面插入一个span标签为什么报错了呢? 报错如下(index):489 Uncaught TypeError: Failed to execute 'insertBefore' on 'Node': parameter 1 is not of type 'Node'.
pnode获取的确实是父元素 我弹出来看了一下 没有错

pnode=this.parentNode.parentNode.parentNode.parentNode;
pnode.insertBefore('<span>aaaa</span>',pnode.childNodes[0]); //这句报错
阅读 3.4k
3 个回答

insertBefor需要插入的节点对象参数必须是Node 对象

var Span=document.createElement('span');
var txt=document.createTextNode('aaaa');
Span.appendChild(txt);
pnode.insertBefore(Span,pnode.childNodes[0]); 

js中insertBefore方法的第一个参数是一个节点对象,而不是字符串
你可以这么写

var newNode=document.createElement("span");
var textnode=document.createTextNode("aaaaa");
newNode.appendChild(textnode)
pnode.insertBefore(newNode,pnode.childNodes[0]);

贴代码啊 你写的有问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题