Introduction
JavaScript is the language for the web, especially for its ability to manipulate the Document Object Model (DOM) that guides how things are rendered within a browser. Everything on the webpage is an element and serves as the base upon which all elements objects inherit, and for HTML elements specific, the HTMLElement
interface suffice.
These elements have properties and methods, and one such methods is the replaceWith
method. The replaceWith
method allows us to replace the element it’s called upon in the children list of its parent with a set of Node
or String
objects (or equivalent Text
node).
In this article, we will discuss how to use JavaScript replaceWith
method and uses it for DOM manipulation.
Using JavaScript replacewith
method to manipulate DOM
With a typical syntax structure as below, the replacewith
method allows us to replace elements by directly referencing the child nodes where Element
is the element/node to be replaced and the Node
is the element/node that will replace the element/node.
Element.replacewith(Node);
Element.replacewith(Node1, Node2);
Also, you can replace it with multiple elements/nodes.
To illustrate how JavaScript replacewith
method, we will display paragraph text and change the text using the method. All the HTML and JS will be written together using the script
tag.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<h1>JavaScript replacewith</h1>
<div id="demo">
<p>This text will be replaced by a button click event</p>
</div>
<button id="btn">Change Text with replacewith</button>
<script>
document.getElementById("btn").onclick = function () {
const pTag = document.querySelector("#demo p");
const newNode = document.createElement("input");
newNode.value =
"Replacement text replaced by the button click event";
pTag.replaceWith(newNode);
};
</script>
</body>
</html>
Output
After we click the button to trigger the replacewith
method, we have the below image.
In the HTML code, we added the demo
and btn
id (identifier) to the div
and button
elements to make the JavaScript code know which element to work with.
However, in the JavaScript code, we find and reference the paragraph
tag by using the querySelector
method and bind it to pTag
binding. Afterward, we can create a new element (newNode
) that will replace the referenced element and bind a value to it. Finally, we make use of the replacewith
method on pTag
(the referenced value) and newNode
(the new node).
Also, we can add multiple nodes by adding new elements or nodes to the arguments of the replacewith
method. To do such, we can replace the code with the replacewith
method expression below. We can also create new elements too.
pTag.replaceWith(newNode, "added node text");
Output
Summary
To make use of the JavaScript replacewith
method, we need to reference the element/node that we want changed and add the new element/node as an argument. Also, we can add multiple nodes or elements via the replacewith
method.
References
Element - Web APIs | MDN (mozilla.org)
Element.replaceWith() - Web APIs | MDN (mozilla.org)