This page was translated from English by the community. Learn more and join the MDN Web Docs community.
Element.insertAdjacentElement()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since апрель 2018 г..
Метод insertAdjacentElement() добавляет переданный элемент в DOM-дерево относительно элемента, вызвавшего метод.
Синтаксис
targetElement.insertAdjacentElement(position, element);
Параметры
- position
-
String- определяет позицию добавляемого элемента относительно элемента, вызвавшего метод. Должно соответствовать одному из следующих значений (чувствительно к регистру):'beforebegin': перед самим элементомtargetElement.'afterbegin': внутри элементаtargetElement, перед его первым потомком.'beforeend': внутри элементаtargetElement, после его последнего потомка.'afterend': после самого элементаtargetElement.
- element
-
Элемент, добавляемый в DOM-дерево.
Возвращаемое значение
Метод возвращает добавляемый элемент, либо null, если добавление элемента завершилось ошибкой.
Исключения
| Исключение | Пояснение |
|---|---|
SyntaxError |
Переданное значение position не соответствует ни одному из допустимых. |
TypeError |
Передаваемый element не является валидным. |
Наглядное отображение параметра position
<!-- beforebegin --> <p> <!-- afterbegin --> foo <!-- beforeend --> </p> <!-- afterend -->
Примечание:
Значения beforebegin и afterend работают только если targetElement находится в DOM-дереве и имеет родительский элемент.
Примеры
beforeBtn.addEventListener("click", function () {
var tempDiv = document.createElement("div");
tempDiv.style.backgroundColor = randomColor();
if (activeElem) {
activeElem.insertAdjacentElement("beforebegin", tempDiv);
}
setListener(tempDiv);
});
afterBtn.addEventListener("click", function () {
var tempDiv = document.createElement("div");
tempDiv.style.backgroundColor = randomColor();
if (activeElem) {
activeElem.insertAdjacentElement("afterend", tempDiv);
}
setListener(tempDiv);
});
Посмотрите наше демо insertAdjacentElement.html на Github (так же посмотрите исходный код). В этом демо мы имеем последовательность <div> элементов внутри контейнера. При выборе одного из них можно нажать кнопку Insert before или Insert after и добавить новые div до или после выбранного элемента используя метод insertAdjacentElement().
Спецификации
| Specification |
|---|
| DOM> # dom-element-insertadjacentelement> |
Совместимость с браузерами
Enable JavaScript to view this browser compatibility table.
Смотрите также
Element.insertAdjacentHTML()Element.insertAdjacentText()Node.insertBefore()Node.appendChild()(такой же эффект со значением positionbeforeend)