Ответ 1
Вы можете использовать .insertBefore()
:
parentElement.insertBefore(newElement, parentElement.children[2]);
Как добавить дочернийNode в определенную позицию в javascript?
Я хочу добавить childNode в третью позицию в div. Есть и другие узлы, которые должны двигаться назад (3 становится 4 и т.д.)
Вы можете использовать .insertBefore()
:
parentElement.insertBefore(newElement, parentElement.children[2]);
Для этого у вас есть 3 варианта .insertBefore(),.insertAdjacentElement() или .insertAdjacentHtml()
var insertedElement = parentElement.insertBefore(newElement, referenceElement);
в вашем случае вы можете сделать как на ответ Феликса Клинга
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)
Тада!
Помните, что при расширении аборигенов может быть неприятно