Element: replaceWith() method

{{APIRef("DOM")}}
The 
replaceWith() method of the {{domxref("Element")}} interface replaces this 
Element in the children list of its parent with a set of {{domxref("Node")}} objects or strings. Strings are inserted as equivalent {{domxref("Text")}} nodes. Nothing happens if {{domxref("Node.parentNode", "parentNode")}} is 
null.
Syntax
replaceWith(param1)
replaceWith(param1, param2)
replaceWith(param1, param2, /* …, */ paramN)
Parameters
param1, …, 
paramN
: A set of {{domxref("Node")}} objects or strings to insert.
Return value
None ({{jsxref("undefined")}}).
Exceptions
HierarchyRequestError {{DOMxRef("DOMException")}}
: Thrown when the node cannot be inserted at the specified point in the hierarchy.
Examples
Using 
replaceWith()
const div = document.createElement("div");
const p = document.createElement("p");
div.appendChild(p);
const span = document.createElement("span");
p.replaceWith(span);
console.log(div.outerHTML);
// "<div><span></span></div>"
replaceWith() is unscopable
The 
replaceWith() method is not scoped into the 
with
statement. See {{jsxref("Symbol.unscopables")}} for more information.
with (node) {
  replaceWith("foo");
}
// ReferenceError: replaceWith is not defined
Specifications
{{Specifications}}
Browser compatibility
{{Compat}}
See also
{{domxref("Node.replaceChild()")}}
{{domxref("NodeList")}}
{{domxref("CharacterData.replaceWith()")}}
{{domxref("DocumentType.replaceWith()")}}