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

时间:2011-05-04 11:41:25

标签: javascript dom parent-child

如何将childNode附加到javascript中的特定位置?

我想将一个childNode添加到div中的第3个位置。它背后还有其他节点需要向后移动(3变为4等)

3 个答案:

答案 0 :(得分:72)

您可以使用.insertBefore()

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

答案 1 :(得分:26)

为此你有3个选项.insertBefore(),。insertAdjacentElement()或.insertAdjacentHtml()


.insertBefore()

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

在你的情况下,你可以像Felix Kling answer

那样做
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>");

答案 2 :(得分:6)

在特定索引处插入子节点

简化,

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)

多田!

请注意何时扩展原生could be troublesome