如何将子节点附加到特定位置

如何在 javascript 中的特定位置追加一个 child 节点?

我想在 div 中的第3个位置添加一个 child Node。后面还有其他节点需要向后移动(3变成4等等)

111787 次浏览

你可以使用 强 > .insertBefore():

parentElement.insertBefore(newElement, parentElement.children[2]);

对于这一点,有3个选项: . sertBefore ()、 . insert tAdjacentElement ()或. insert tAdjacentHtml ()


.insertBefore()

var insertedElement = parentElement.insertBefore(newElement, referenceElement);

在你的情况下,你可以做的 菲利克斯 · 克林回答

var insertedElement = parentElement.insertBefore(newElement, parentElement.children[2]);

.insertAdjacentElement()

referenceElement.insertAdjacentElement (where, newElement);

对你来说是的

parentElement.children[1].insertAdjacentElement("afterEnd", newElement);

.insertAdjacentHTML()

referenceElement.insertAdjacentElement (where, newElementHTML);

对你来说是的

parentElement.children[1].insertAdjacentElement("afterEnd", "<td>newElementHTML</td>");

在特定索引处插入子节点

简而言之,

Element.prototype.insertChildAtIndex = function(child, index) {
if (!index) index = 0
if (index >= this.children.length) {
this.appendChild(child)
} else {
this.insertBefore(child, this.children[index])
}
}

然后,

var child = document.createElement('div')
var parent = document.body
parent.insertChildAtIndex(child, 2)

当当当!

当扩展原生 可能会很麻烦时要注意