--- title: Document.createElement() slug: Web/API/Document/createElement tags: - API - DOM - Document - Referenza - createElement - metodo translation_of: Web/API/Document/createElement ---
In un documento HTML, il metodo document.createElement() crea l'elemento HTML specificato da tagName o un {{domxref("HTMLUnknownElement")}} se tagName non viene riconosciuto.
Note: In un documento XUL, crea l'elemento XUL specificato. In altri documenti, crea un elemento con un URI namespace null.
var element = document.createElement(tagName[, options]);
createElement() converte tagName in minuscolo prima di creare l'elemento. In Firefox, Opera e Chrome, createElement(null) funziona come createElement("null").ElementCreationOptions opzionale contenente una singola proprietà denominata is, il cui valore è il nome del tag per un elemento personalizzato precedentemente definito utilizzando customElements.define(). Vedi {{anch("Esempio di componente Web")}} per ulteriori dettagli.Il nuovo {{domxref("Element")}}.
Questo crea un nuovo <div> e lo inserisce prima dell'elemento con l'ID "div1".
<!DOCTYPE html> <html> <head> <title>||Lavorare con gli elementi||</title> </head> <body> <div id="div1">Il testo sopra è stato creato dinamicamente.</div> </body> </html>
document.body.onload = addElement;
function addElement() {
// crea un nuovo elemento div
var newDiv = document.createElement("div");
// ed assegnargli un contenuto
var newContent = document.createTextNode("Hi there and greetings!");
// aggiungi il nodo di testo al div appena creato
newDiv.appendChild(newContent);
// aggiungi l'elemento appena creato e il suo contenuto nel DOM
var currentDiv = document.getElementById("div1");
document.body.insertBefore(newDiv, currentDiv);
}
{{EmbedLiveSample("Esempio_basilare", 500, 50)}}
Il seguente frammento di esempio è tratto dal nostro esempio di componente di espansione list-web (vedi anche live). In questo caso, il nostro elemento personalizzato estende {{domxref("HTMLUListElement")}}, che rappresenta l'elemento {{htmlelement("ul")}}.
// Crea una classe per l'elemento
class ExpandingList extends HTMLUListElement {
constructor() {
// Chiama sempre super prima nel costruttore
super();
// definizione del costruttore lasciata fuori per brevità
...
}
}
// Definisce il nuovo elemento
customElements.define('expanding-list', ExpandingList, { extends: "ul" });
Se volessimo creare un'istanza di questo elemento a livello di codice, utilizzeremmo una chiamata seguendo le linee seguenti:
let expandingList = document.createElement('ul', { is : 'expanding-list' })
Al nuovo elemento verrà assegnato un attributo is il cui valore è il nome del tag dell'elemento personalizzato.
Note: Per la retrocompatibilità con le versioni precedenti della specifica Elementi personalizzati, alcuni browser ti permetteranno di passare una stringa qui invece di un oggetto, dove il valore della stringa è il nome del tag dell'elemento personalizzato.
| Specifica | Stato | Commento |
|---|---|---|
| {{SpecName('DOM WHATWG', "#dom-document-createelement", "Document.createElement")}} | {{Spec2('DOM WHATWG')}} |
{{Compat("api.Document.createElement")}}