如何将childNode附加到javascript中的特定位置?
我想将childNode添加到div中的第3个位置。它后面还有其他节点需要向后移动(3变为4,依此类推)
Answers:
您可以使用.insertBefore()
:
parentElement.insertBefore(newElement, parentElement.children[2]);
parentElement.children
而不是parentElement.childNodes
?前者仅列出了Element
s的子节点,因此忽略了s的节点Text
,例如……假设子节点可以包括所有类型的节点,这会更好吗?
<li>
有序列表中的列表项时<ol>
,您不希望将空格缩进算作子级(假设HTML文档很漂亮)。
为此,您有3个选项.insertBefore()、. insertAdjacentElement()或.insertAdjacentHtml()
var insertedElement = parentElement.insertBefore(newElement, referenceElement);
在您的情况下,您可以按照Felix Kling的回答进行操作
var insertedElement = parentElement.insertBefore(newElement, parentElement.children[2]);
referenceElement.insertAdjacentElement (where, newElement);
在你的情况下
parentElement.children[1].insertAdjacentElement("afterEnd", newElement);
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)
多田
注意扩展本地人可能会遇到麻烦