The task is to replace an element by another element in place using JavaScript. Below are the few methods:
-
parentNode Property: This property returns the parent node of the defined node, as a Node object.
Syntax:node.parentNode
Return value:
It returns a node object, which represents the parent node of a node, or null if there is no parent. -
replaceChild() Method: This method replaces a child node with a new node. This new node can be an existing node in the document, or can be newly created.
Syntax:node.replaceChild(newNode, oldNode)
Parameters:
- newNode: This parameter is required. It specifies the node object to insert.
- oldNode: This parameter is required. It specifies the node object to remove.
Return value:
It returns a node object, which represents the replaced node.
Example 1: This example creates a new <span> element and replace it with the <a> element using parentNode property and replace() method.
<!DOCTYPE html> < html > < head > < title > JavaScript | Replace dom element in place. </ title > </ head > < body style = "text-align:center;" id = "body" > < h1 style = "color:green;" > neveropen </ h1 > < p id = "GFG_UP" style = "font-size: 15px; font-weight: bold;" > </ p > < div > < a id = "a" href = "#" >neveropen</ a > </ div > < br > < button onclick = "gfg_Run()" > Click here </ button > < p id = "GFG_DOWN" style = "color:green; font-size: 20px; font-weight: bold;" > </ p > < script > var el_up = document.getElementById("GFG_UP"); var el_down = document.getElementById("GFG_DOWN"); var today = 'Click button to replace < a > element in DOM'; el_up.innerHTML = today; function gfg_Run() { var aEl = document.getElementById("a"); var newEl = document.createElement("span"); newEl.innerHTML = "replaced text!"; aEl.parentNode.replaceChild(newEl, aEl); el_down.innerHTML = "< a > element is replaced by the < span > element."; } </ script > </ body > </ html > |
Output:
-
Before clicking the button:
-
After clicking the button:
Example 2: This example creates a new <a> element and replace it with the previous <a> element using parentNode property and replace() method keeping the href property same.
<!DOCTYPE html> < html > < head > < title > JavaScript | Replace dom element in place. </ title > </ head > < body style = "text-align:center;" id = "body" > < h1 style = "color:green;" > neveropen </ h1 > < p id = "GFG_UP" style = "font-size: 15px; font-weight: bold;" > </ p > < div > < a id = "a" </ div > < br > < button onclick = "gfg_Run()" > Click here </ button > < p id = "GFG_DOWN" style = "color:green; font-size: 20px; font-weight: bold;" > </ p > < script > var el_up = document.getElementById("GFG_UP"); var el_down = document.getElementById("GFG_DOWN"); var today = 'Click button to replace < a > element in DOM'; el_up.innerHTML = today; function gfg_Run() { var aEl = document.getElementById("a"); var newEl = document.createElement("a"); newEl.innerHTML = "New GFG link!"; newEl.href = "https://www.geeksforgeeks.org"; aEl.parentNode.replaceChild(newEl, aEl); el_down.innerHTML = "< a > element is replaced by the new < a > element."; } </ script > </ body > </ html > |
Output:
-
Before clicking the button:
-
After clicking the button:
- Supported browser
- Google Chrome
- Mozilla Firefox
- Internet Explorer
- Safari
- Opera