还有insertBefore()
在JavaScript,但我怎么能插入一个元素后,另一种元素,而不使用jQuery或其他库?
如何在不使用库的情况下在JavaScript中的另一个元素之后插入一个元素?
if( !Element.prototype.insertAfter ) {
Element.prototype.insertAfter = function(item, reference) {
if( reference.nextSibling )
reference.parentNode.insertBefore(item, reference.nextSibling);
else
reference.parentNode.appendChild(item);
};
}
或者您可以简单地执行以下操作:
referenceNode.parentNode.insertBefore( newNode, referenceNode )
referenceNode.parentNode.insertBefore( referenceNode, newNode )
node1.after(node2)
产生<node1/><node2/>
,
其中node1和node2是DOM节点。
.after()
较旧的浏览器[1]不支持,因此您可能需要应用polyfill。
参考:https : //developer.mozilla.org/en-US/docs/Web/API/ChildNode/after
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
referenceNode
您要放置的节点在哪里newNode
。If referenceNode
是其父元素中的最后一个子元素,这很好,因为referenceNode.nextSibling
它将是,null
并insertBefore
通过添加到列表的末尾来处理这种情况。
所以:
function insertAfter(newNode, referenceNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}
您可以使用
appendChild
函数在元素之后插入。参考:http : //www.w3schools.com/jsref/met_node_appendchild.asp