Open In App

How to change an HTML element name using jQuery ?

Last Updated : 07 Jul, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

Given an HTML document and the task is to replace an HTML element by another element. For example: we can change an element <b> with <h1> element without changing any other property.
Approach: 
 

  • Select the HTML element which need to be change.
  • Copy all attributes of previous element in an object.
  • Replace the previous element by new element.

Example 1: This example illustrates the above approach. 
 

html




<!DOCTYPE HTML> 
<html
 
<head
    <title
        JQuery | Change an element type.
    </title>
     
    <script src=
    </script>
</head
 
<body style = "text-align:center;"
     
    <h1 style = "color:green;"
        GeeksforGeeks 
    </h1>
     
    <p id = "GFG_UP" style =
            "font-size: 15px; font-weight: bold;">
    </p>
  
     
    <button onclick = "GFG_Fun()">
        click here
    </button>
     
    <br><br>
         
    <b style = "color:green; font-weight: bold;">
        Welcome to GeeksforGeeks
    </b>
         
    <script
        var up = document.getElementById('GFG_UP');
        up.innerHTML = "Click on the button to "
                    + "replace an HTML element";
         
        function GFG_Fun() {
             
            var attribute = { };
             
            $.each($("b")[0].attributes, function(id, atr) {
                attribute[atr.nodeName] = atr.nodeValue;
            });
            $("b").replaceWith(function () {
                return $("<h1 />",
                    attribute).append($(this).contents());
            });
        }
    </script
</body
 
</html>


Output: 
 

  • Before clicking on the button: 
     

  • After clicking on the button: 
     

Example 2: This example using the above discussed approach but with a different way to copy attributes. 
 

html




<!DOCTYPE HTML> 
<html
 
<head
    <title
        JQuery | Change an element type.
    </title>
     
    <script src=
    </script>
</head
 
<body id = "body" style = "text-align:center;"
     
    <h1 style = "color:green;"
        GeeksforGeeks 
    </h1>
     
    <p id = "GFG_UP" style =
            "font-size: 15px; font-weight: bold;">
    </p>
  
     
    <button onclick = "GFG_Fun()">
        click here
    </button>
     
    <br><br>
     
    <b style
            "color:green; font-weight: bold;">
        Welcome to GeeksforGeeks
    </b>
     
    <script
        var up = document.getElementById('GFG_UP');
        up.innerHTML = "Click on the button to "
                    + "replace an HTML element";
         
        function GFG_Fun() {
            var oldElement = $("b");
            var newElement = $("<h1>");
             
            for(var i=0; i<oldElement[0].attributes.length; i++) {
                var Attr = oldElement[0].attributes[i].nodeName;
                var AttrVal = oldElement[0].attributes[i].nodeValue;
                newElement.attr(Attr, AttrVal);
            }
            newElement.html(oldElement.html());
            oldElement.replaceWith(newElement);
        }
    </script> 
</body
 
</html>


Output: 
 

  • Before clicking on the button: 
     

  • After clicking on the button: 
     

 



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads