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
-
DOMString- определяет позицию добавляемого элемента относительно элемента, вызвавшего метод. Должно соответствовать одному из следующих значений (чувствительно к регистру):'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> |
Совместимость с браузерами
Loading…
Смотрите также
Element.insertAdjacentHTML()Element.insertAdjacentText()Node.insertBefore()Node.appendChild()(такой же эффект со значением positionbeforeend)