Spec-Zone.ru › Web APIs

Элемент: свойство outerHTML

Базовая линия Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Свойство outerHTML интерфейса DOM Element получает сериализованный фрагмент HTML, описывающий элемент, включая его потомков. Его также можно установить, чтобы заменить элемент узлами, разобранными из данной строки.

Чтобы получить только представление HTML содержимого элемента или заменить содержимое элемента, используйте свойство innerHTML вместо этого.

Значение

Чтение значения outerHTML возвращает строку, содержащую HTML-сериализацию element и его потомков. Установка значения outerHTML заменяет элемент и всех его потомков новой деревом DOM, созданной путем разбора указанного htmlString.

При установке в null значение null преобразуется в пустую строку (""), поэтому elt.outerHTML = null эквивалентно elt.outerHTML = "".

Исключения

SyntaxError DOMException

Выбрасывается, если была предпринята попытка установить outerHTML с помощью строки HTML, которая не является допустимой.

NoModificationAllowedError DOMException

Выбрасывается, если была предпринята попытка установить 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&amp;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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API