--- title: Document.createElement() slug: Web/API/Document/createElement tags: - API - DOM - Document - Metode - Referensi - createElement translation_of: Web/API/Document/createElement ---
{{APIRef("DOM")}}

Dalam sebuah dokumen HTML, metode document.createElement() membuat elemen HTML yang ditentukan oleh tagName, atau sebuah  {{domxref("HTMLUnknownElement")}} jika tagName tidak dikenali.

Catatan: Dalam sebuah dokumen XUL , ini membuat elemen XUL yang ditentukan. Pada dokumen lain, ini membuat sebuah elemen dengan sebuah namespace URI yang null.

Sintaks

var element = document.createElement(tagName[, options]);

Parameter

tagName
Sebuah string yang menentukan tipe dari elemen yang akan dibuat. {{domxref("Node.nodeName", "nodeName")}} dari elemen dibuat dengan nilai tagName. Jangan menggunakan nama yang memenuhi syarat (seperti "html:a") dengan metode ini. Ketika dipanggil pada sebuah dokumen HTML, createElement() mengubah tagName menjadi lower case sebelum membuat elemen. Pada Firefox, Opera, dan Chrome, createElement(null) bekerja seperti createElement("null").
options{{optional_inline}}
Sebuah objek opsional ElementCreationOptions berisi sebuah properti tunggal bernama is, yang nilainya adalah nama tag untuk sebuah elemen khusus yang sebelumnya didefinisikan menggunakan customElements.define(). Lihat {{anch("Web component example")}} untuk lebih jelasnya.

Return value

Element baru.

Contoh

Contoh dasar

Ini membuat sebuah <div> baru dan memasukannya sebelum elemen dengan ID "div1".

HTML

<!DOCTYPE html>
<html>
<head>
  <title>||Bekerja dengan elemen||</title>
</head>
<body>
  <div id="div1">Teks di atas telah dibuat secara dinamis.</div>
</body>
</html>

JavaScript

document.body.onload = addElement;

function addElement () {
  // membuat sebuah elemen div baru
  var newDiv = document.createElement("div");
  // dan memberikannya sebuah konten
  var newContent = document.createTextNode("Hi there and greetings!");
  // menambahkan teks terebut ke div yang baru dibuat
  newDiv.appendChild(newContent);

  // menambah elemen yang baru dibuat berserta isinya ke dalam DOM
  var currentDiv = document.getElementById("div1");
  document.body.insertBefore(newDiv, currentDiv);
}

{{EmbedLiveSample("Basic_example", 500, 50)}}

Contoh komponen web

Contoh cuplikan berikut diambil dari contoh dari expanding-list-web-component kami (lihat juga secara langsung). Dalam kasus ini, elemen khusus kami memperluas {{domxref("HTMLUListElement")}}, yang mewakili elemen {{htmlelement("ul")}}.

// Membuat sebuah kelas untuk elemen
class ExpandingList extends HTMLUListElement {
  constructor() {
    // Selalu memanggil super dulu di konstruktor
    super();

    // definisi konstruktor dihilangkan untuk singkatnya
    ...
  }
}

// Mendefinisi elemen baru
customElements.define('expanding-list', ExpandingList, { extends: "ul" });

Jika kita ingin untuk membuat sebuah instance dari elemen ini secara terprogram, kita akan menggunakan sebuah panggilan di sepanjang baris berikut:

let expandingList = document.createElement('ul', { is : 'expanding-list' })

Elemen baru akan diberikan sebuah atribut is yang nilainya adalah nama tag elemen khusus.

Catatan: Untuk kompabilitas ke belakang untuk versi sebelumnya dari Spesifikasi Elemen khusus, beberapa peramban (browser) akan memungkinkan Anda untuk melewatkan sebuah string di sini bukan pada sebuah objek, yang mana nilai string  adalah nama tag elemen khusus.

Spesifikasi

Spesifikasi Status Komentar
{{SpecName('DOM WHATWG', "#dom-document-createelement", "Document.createElement")}} {{Spec2('DOM WHATWG')}}  

Kompabilitas peramban

{{CompatibilityTable}}

Fitur Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Dukungan dasar {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}[1][2] {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
argumen options {{CompatVersionUnknown}}[3] {{CompatUnknown}} {{CompatGeckoDesktop(50)}}[4][5] {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}}
Fitur Android Android Webview Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Dukungan dasar {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
argumen options {{CompatVersionUnknown}} {{CompatVersionUnknown}}[3] {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}}[3]

[1] Dimulai dengan Gecko 22.0 {{geckoRelease("22.0")}} createElement() tidak lagi menggunakan antarmuka {{domxref("HTMLSpanElement")}} ketika argumennya adalah "bgsounds", "multicol", atau "image".  Sebagai gantinya, HTMLUnknownElement digunakan untuk "bgsound" dan "multicol" dan {{domxref("HTMLElement")}} HTMLElement digunakan untuk "image".

[2] Implementasi Gecko dari createElement tidak sesuai dengan spesifikasi DOM untuk dokumen XUL dan XHTML: localName dan namespaceURI tidak diatur ke null pada elemen yang dibuat. Lihat {{ Bug(280692) }} untuk lebih jelasnya.

[3] Pada versi sebelumnya dari spesifikasi, argumen ini hanyalah sebuah string yang nilainyaadalah nama tag elemen khusus. Misalnya bisa saja document.createElement("button", "custom-button") daripada document.createElement("button", {is: "custom-button"}). Demi kompabilitas ke belakang, Chrome menerima kedua bentuk tersebut, meskipun bentuk string sudah usang.

[4] Liat [3] di atas: seperti Chrome, Firefox menerima string, bukan sebuah objek di sini, tetapi hanya dari versi 51 dan seterusnya. Pada versi 50, options harus sebuah objek.

[5] Untuk eksperimen dengan elemen khusus di Firefox, Anda harus mengatur preferensi dom.webcomponents.enabled dan dom.webcomponents.customelements.enabled menjadi true.

Catatan Quantum CSS

Lihat juga