HTML DOM customElements define() Method

The customElements define() method is used to define a new custom element. There are two types of custom elements that can be created:

  • Autonomous custom element: These elements do not inherit from built-in HTML elements.
  • Customized built-in element: These elements inherit from built-in HTML elements.

Syntax:

customElements.define( name, constructor, options );

Parameters:

  • name: It specifies the name for the new custom element. The name of custom elements must contain hyphen.
  • constructor: It specifies the constructor for the new custom element.
  • options: It specifies the object that controls how the element is defined. It is an optional parameter.

Return value: This method returns void.

Example: In this example, a custom element is defined, named <gfg-custom-element> with a constructor named CustomEl using this method.



HTML

filter_none

edit
close

play_arrow

link
brightness_4
code

<!DOCTYPE HTML>
<html>
  
<body style="text-align:center;">
    <h1 style="color:green;">
        GeeksforGeeks
    </h1>
  
    <p>
        HTML | customElements define() method
    </p>
  
    <button onclick="Geeks();">
        click here
    </button>
  
    <p id="arr"></p>
  
    <script>
        var arr =
            document.getElementById("arr");
  
        // Function to define the element
        function Geeks() {
            class CustomEl extends HTMLElement {
                constructor() {
                    super();
                    this.attachShadow({ mode: 'open' });
                    this.shadowRoot.innerHTML = `
            <h1 style="color:green;">  
            GeeksforGeeks Custom
            Element Data
                </h1>
            `;
                }
            }
  
            // Use the define() method to define
            // a new element
            window.customElements.define(
                'gfg-custom-element', CustomEl);
        
    </script>
    <gfg-custom-element></gfg-custom-element>
</body>
  
</html>

chevron_right


Output:

  • Before Clicking the Button:

  • After Clicking the Button:

Supported Browsers:

  • Google Chrome 66.0
  • Edge 79.0
  • Firefox 63.0
  • Safari 10.1
  • Opera 53.0

full-stack-img




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.