Jar*_*rco 49 javascript dom parent-child
如何将childNode附加到javascript中的特定位置?
我想将一个childNode添加到div中的第3个位置.它背后还有其他节点需要向后移动(3变为4等)
Fel*_*ing 79
你可以使用.insertBefore()
:
parentElement.insertBefore(newElement, parentElement.children[2]);
Run Code Online (Sandbox Code Playgroud)
Mau*_*nes 27
为此,您有3个选项.insertBefore(),.insertAdjacentElement()或.insertAdjacentHtml()
var insertedElement = parentElement.insertBefore(newElement, referenceElement);
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你可以像Felix Kling一样回答
var insertedElement = parentElement.insertBefore(newElement, parentElement.children[2]);
Run Code Online (Sandbox Code Playgroud)
referenceElement.insertAdjacentElement (where, newElement);
Run Code Online (Sandbox Code Playgroud)
在你的情况下,它会
parentElement.children[1].insertAdjacentElement("afterEnd", newElement);
Run Code Online (Sandbox Code Playgroud)
referenceElement.insertAdjacentElement (where, newElementHTML);
Run Code Online (Sandbox Code Playgroud)
在你的情况下,它会
parentElement.children[1].insertAdjacentElement("afterEnd", "<td>newElementHTML</td>");
Run Code Online (Sandbox Code Playgroud)
简化,
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])
}
}
Run Code Online (Sandbox Code Playgroud)
然后,
var child = document.createElement('div')
var parent = document.body
parent.insertChildAtIndex(child, 2)
Run Code Online (Sandbox Code Playgroud)
田田!
请注意扩展本机可能会很麻烦