Элемент: свойство outerHTML
Базовая линия Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Свойство outerHTML интерфейса DOM Element получает сериализованный фрагмент HTML, описывающий элемент, включая его потомков. Его также можно установить, чтобы заменить элемент узлами, разобранными из данной строки.
Чтобы получить только представление HTML содержимого элемента или заменить содержимое элемента, используйте свойство innerHTML вместо этого.
Значение
Чтение значения outerHTML возвращает строку, содержащую HTML-сериализацию element и его потомков. Установка значения outerHTML заменяет элемент и всех его потомков новой деревом DOM, созданной путем разбора указанного htmlString.
При установке в null значение null преобразуется в пустую строку (""), поэтому elt.outerHTML = null эквивалентно elt.outerHTML = "".
Исключения
-
SyntaxErrorDOMException -
Выбрасывается, если была предпринята попытка установить
outerHTMLс помощью строки HTML, которая не является допустимой. -
NoModificationAllowedErrorDOMException -
Выбрасывается, если была предпринята попытка установить
outerHTMLдля элемента, являющегося прямым потомкомDocument, например,Document.documentElement.
Примеры
Получение значения свойства outerHTML элемента
HTML
<div id="d"> <p>Content</p> <p>Further Elaborated</p> </div>
JavaScript
const d = document.getElementById("d");
console.log(d.outerHTML);
// The string '<div id="d"><p>Content</p><p>Further Elaborated</p></div>'
// is written to the console window
Замена узла путем установки свойства outerHTML
HTML
<div id="container"> <div id="d">This is a div.</div> </div>
JavaScript
const container = document.getElementById("container");
const d = document.getElementById("d");
console.log(container.firstElementChild.nodeName); // logs "DIV"
d.outerHTML = "<p>This paragraph replaced the original div.</p>";
console.log(container.firstElementChild.nodeName); // logs "P"
// The #d div is no longer part of the document tree,
// the new paragraph replaced it.
Примечания
Если у элемента нет родительского узла, установка его свойства outerHTML не изменит его или его потомков. Например:
const div = document.createElement("div");
div.outerHTML = '<div class="test">test</div>';
console.log(div.outerHTML); // output: "<div></div>"
Также, хотя элемент будет заменён в документе, переменная, для которой было установлено свойство outerHTML , по-прежнему будет содержать ссылку на исходный элемент:
const p = document.querySelector("p");
console.log(p.nodeName); // shows: "P"
p.outerHTML = "<div>This div replaced a paragraph.</div>";
console.log(p.nodeName); // still "P";
Возвращаемое значение будет содержать атрибуты, закодированные в HTML:
const anc = document.createElement("a");
anc.href = "https://developer.mozilla.org?a=b&c=d";
console.log(anc.outerHTML); // output: "<a href='https://developer.mozilla.org?a=b&c=d'></a>"
Спецификации
| Спецификация |
|---|
| HTML # dom-element-outerhtml |
Совместимость браузеров
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
outerHTML |
1 | 12 | 11 | 8 | 1.3 | 18 | 14 | 10.1 | 1 | 1.0 | 1 |
См. также
- Сериализация деревьев DOM в XML-строки:
XMLSerializer - Разбор XML или HTML в деревья DOM:
DOMParser HTMLElement.outerText
© 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/outerHTML