Apa yang harus kita gunakan daripada innerhtml?

Contoh

Dapatkan konten HTML dari suatu elemen dengan id="myP"

biarkan html = dokumen. getElementById("myP"). innerHTML;

Cobalah sendiri "

Ubah konten HTML suatu elemen dengan id="demo"

dokumen. getElementById("demo"). innerHTML = "Saya telah berubah. ";

Cobalah sendiri "

Dapatkan konten HTML dari a

    elemen dengan id="myList"

    biarkan html = dokumen. getElementById("daftarsaya"). innerHTML;

    Cobalah sendiri "

    Hapus konten HTML a

    elemen dengan id="demo"

    Cobalah sendiri "

    Lebih banyak contoh di bawah ini


Definisi dan Penggunaan

Properti innerHTML_ menyetel atau mengembalikan konten HTML (HTML bagian dalam) dari suatu elemen

Perbedaan AntarainnerHTML, innerText dan textContent

Lihat di bawah


Sintaksis

Kembalikan properti innerHTML

Setel properti innerHTML

Nilai properti

Konten PropertyDescriptionStringHTML

Nilai Pengembalian

TypeDescriptionStringKonten HTML elemen

Lebih Banyak Contoh

Contoh

Ubah konten HTML dari dua elemen

biarkan teks = "Halo Dolly. ";
dokumen. getElementById("myP"). innerHTML = teks;
dokumen. getElementById("myDIV"). innerHTML = teks;

Cobalah sendiri "

Contoh

Ulangi konten HTML suatu elemen

elemen. innerHTML += elemen. innerHTML;

Cobalah sendiri "

Contoh

Ubah konten HTML dan URL tautan

elemen. innerHTML = "W3Schools";
elemen. href = "https. // www. w3schools. com";

Cobalah sendiri "


Perbedaan AntarainnerHTML, innerText dan textContent

Properti innerHTML kembali
Konten teks elemen, termasuk semua spasi dan tag HTML bagian dalam. Properti innerText kembali
Hanya konten teks elemen dan semua turunannya, tanpa spasi dan tag teks tersembunyi CSS, kecuali

CodeReturned Valuebrowser. DomElement("//div[@id='mylinks']"). GetProperty("textContents")

This is my link collection:
browser. DomElement("//div[@id='mylinks']"). GetProperty("innerText")
This is my link collection:Bye bye Borland Welcome to Micro Focus
browser. DomElement("//div[@id='mylinks']"). GetProperty("innerHtml")
This is my <b>link collection</b>:
<ul> 
  <li><a href="www.borland.com">Bye bye <b>Borland</b></a></li>
  <li><a href="www.microfocus.com">Welcome to <b>Micro Focus</b></a></li> 
</ul>

Anda dapat memasukkan HTML ke dalam ini. Namun kelemahan dari metode ini adalah, ia memiliki serangan keamanan lintas situs. Jadi untuk menambahkan teks, lebih baik hindari ini untuk alasan keamanan

2- teks dalam

document.getElementById("ShowButton").innerText = 'Show Filter';

Ini juga akan mencapai hasil tetapi berat di bawah kap karena memerlukan beberapa informasi sistem tata letak, yang menyebabkan kinerja menurun. Tidak seperti innerHTML, Anda tidak dapat menyisipkan tag HTML dengan ini. Cek Disini

3- konten teks

document.getElementById("ShowButton").textContent = 'Show Filter';
_

Ini juga akan mencapai hasil yang sama tetapi tidak memiliki masalah keamanan seperti innerHTML karena tidak mengurai HTML seperti innerText. Selain itu, juga ringan sehingga performanya meningkat

Ringkasan. dalam tutorial ini, Anda akan mempelajari perbedaan antara innerHTML dan createElement() saat membuat elemen baru di pohon DOM

#1) createElement lebih berkinerja

Misalkan Anda memiliki elemen div_ dengan wadah kelas

<div class="container"></div>

Code language: HTML, XML (xml)

Anda dapat menambahkan elemen baru ke elemen div dengan membuat elemen dan menambahkannya

let div = document.querySelector('.container'); let p = document.createElement('p'); p.textContent = 'JS DOM'; div.appendChild(p);

Code language: JavaScript (javascript)
_

Anda juga dapat memanipulasi HTML elemen secara langsung menggunakan innerHTML seperti ini

let div = document.querySelector('.container'); div.innerHTML += '<p>JS DOM</p>';

Code language: JavaScript (javascript)

Menggunakan innerHTML lebih bersih dan lebih pendek saat Anda ingin menambahkan atribut ke elemen

let div = document.querySelector('.container'); div.innerHTML += '<p class="note">JS DOM</p>';

Code language: JavaScript (javascript)
_

Namun, menggunakan innerHTML_ menyebabkan browser web mengurai ulang dan membuat ulang semua node DOM di dalam elemen div. Oleh karena itu, ini kurang efisien daripada membuat elemen baru dan menambahkan div. Dengan kata lain, membuat elemen baru dan menambahkannya ke pohon DOM memberikan kinerja yang lebih baik daripada innerHTML

#2) createElement lebih aman

Seperti yang disebutkan dalam tutorial innerHTML, Anda harus menggunakannya hanya jika data berasal dari sumber tepercaya seperti database

Jika Anda menyetel konten yang tidak dapat Anda kendalikan ke innerHTML, kode berbahaya dapat diinjeksi dan dieksekusi

#3) Menggunakan DocumentFragment untuk menyusun Node DOM

Dengan asumsi Anda memiliki daftar elemen dan Anda perlukan di setiap iterasi

let div = document.querySelector('.container'); for (let i = 0; i < 1000; i++) { let p = document.createElement('p'); p.textContent = `Paragraph ${i}`; div.appendChild(p); }

Code language: JavaScript (javascript)
_

Kode ini menghasilkan perhitungan ulang gaya, lukisan, dan tata letak setiap iterasi. Ini sangat tidak efisien

Untuk mengatasinya, Anda biasanya menggunakan

let div = document.querySelector('.container'); let p = document.createElement('p'); p.textContent = 'JS DOM'; div.appendChild(p);

Code language: JavaScript (javascript)
_4 untuk menyusun simpul DOM dan menambahkannya ke pohon DOM

let div = document.querySelector('.container'); // compose DOM nodes let fragment = document.createDocumentFragment(); for (let i = 0; i < 1000; i++) { let p = document.createElement('p'); p.textContent = `Paragraph ${i}`; fragment.appendChild(p); } // append the fragment to the DOM tree div.appendChild(fragment);

Code language: JavaScript (javascript)

Dalam contoh ini, kami menyusun simpul DOM dengan menggunakan objek

let div = document.querySelector('.container'); let p = document.createElement('p'); p.textContent = 'JS DOM'; div.appendChild(p);

Code language: JavaScript (javascript)
4 dan menambahkan fragmen ke pohon DOM aktif satu kali di bagian akhir

Fragmen dokumen tidak tertaut ke pohon DOM yang aktif, oleh karena itu, tidak menghasilkan kinerja apa pun

Mengapa kita tidak menggunakan innerHTML?

Penggunaan innerHTML menimbulkan potensi risiko keamanan untuk situs web Anda . Pengguna jahat dapat menggunakan skrip lintas situs (XSS) untuk menambahkan skrip sisi klien jahat yang mencuri informasi pribadi pengguna yang disimpan dalam cookie sesi.

Haruskah saya menggunakan innerHTML atau innerText?

innerText mengembalikan semua teks yang dikandung oleh elemen dan semua elemen turunannya. innerHtml mengembalikan semua teks, termasuk tag html, yang dimuat oleh sebuah elemen .

Bagaimana saya bisa menambahkan HTML tanpa innerHTML?

createElement dan appendChild. Salah satu cara menambahkan elemen turunan ke elemen penampung tanpa menyetel properti innerHTML adalah dengan menggunakan dokumen. metode createElement untuk membuat elemen. Kemudian kita bisa memanggil appendChild untuk menambahkan elemen.

Mengapa textContent lebih baik daripada innerHTML?

Catatan. Tidak seperti innerHTML, textContent memiliki kinerja yang lebih baik karena nilainya tidak diuraikan sebagai HTML . Oleh karena itu, penggunaan textContent juga dapat mencegah serangan Cross-Site Scripting (XSS). Tidak seperti innerText, textContent tidak mengetahui gaya CSS dan tidak akan memicu reflow.