Элемент: метод insertAdjacentElement()
Базовая линия Широко доступна
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Метод insertAdjacentElement() интерфейса Element вставляет указанный узел элемента в заданную позицию относительно элемента, на котором он вызван.
Синтаксис
insertAdjacentElement(position, element)
Параметры
position-
Строка, представляющая позицию относительно
targetElement; должна точно (без учета регистра) соответствовать одной из следующих строк:-
'beforebegin': Перед самимtargetElement. -
'afterbegin': ВнутриtargetElement, перед его первым дочерним элементом. -
'beforeend': ВнутриtargetElement, после его последнего дочернего элемента. -
'afterend': После самогоtargetElement.
-
element-
Элемент, который будет вставлен в дерево.
Возвращаемое значение
Вставленный элемент или null, если вставка не удалась.
Исключения
-
SyntaxErrorDOMException -
Выбрасывается, если указанное
positionне является распознаваемым значением. TypeError-
Выбрасывается, если указанный
elementне является допустимым элементом.
Визуализация имён позиций
<!-- beforebegin --> <p> <!-- afterbegin --> foo <!-- beforeend --> </p> <!-- afterend -->
Примечание: Позиции beforebegin и afterend работают только в том случае, если узел находится в дереве и имеет родительский элемент.
Примеры
beforeBtn.addEventListener("click", () => {
const tempDiv = document.createElement("div");
tempDiv.style.backgroundColor = randomColor();
if (activeElem) {
activeElem.insertAdjacentElement("beforebegin", tempDiv);
}
setListener(tempDiv);
});
afterBtn.addEventListener("click", () => {
const tempDiv = document.createElement("div");
tempDiv.style.backgroundColor = randomColor();
if (activeElem) {
activeElem.insertAdjacentElement("afterend", tempDiv);
}
setListener(tempDiv);
});
Посмотрите наш демонстрационный пример insertAdjacentElement.html на GitHub (также посмотрите исходный код). Здесь у нас последовательность элементов <div> внутри контейнера. Когда один из них нажимается, он становится выбранным, и вы можете нажать кнопки Вставить перед и Вставить после, чтобы вставить новые div-элементы перед или после выбранного элемента с помощью insertAdjacentElement().
Спецификации
| Спецификация |
|---|
| DOM # dom-element-insertadjacentelement |
Совместимость с браузерами
| Рабочий стол | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
insertAdjacentElement |
1 | 17 | 48 | 8 | 3 | 18 | 48 | 10.1 | 1 | 1.0 | 4.4 |
См. также
Element.insertAdjacentHTML()Element.insertAdjacentText()-
Node.insertBefore()(аналогичноbeforebegin, с другими аргументами) -
Node.appendChild()(тот же эффект, что иbeforeend)
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentElement