Saya perlu cara untuk menambahkan HTML ke elemen wadah tanpa menggunakan innerHTML. Alasan mengapa saya tidak ingin menggunakan innerHTML adalah karena ketika digunakan seperti ini:
element.innerHTML += htmldata
Ini bekerja dengan mengganti semua html terlebih dahulu sebelum menambahkan html lama ditambah html baru. Ini tidak baik karena mengatur ulang media dinamis seperti video flash yang tertanam ...
Saya bisa melakukannya dengan cara ini:
var e = document.createElement('span');
e.innerHTML = htmldata;
element.appendChild(e);
Namun masalah dengan cara itu adalah bahwa ada tag rentang ekstra dalam dokumen sekarang yang tidak saya inginkan.
Bagaimana ini bisa dilakukan? Terima kasih!
Jawaban:
Untuk memberikan alternatif (seperti menggunakan
DocumentFragment
tampaknya tidak berhasil): Anda dapat mensimulasikannya dengan mengulangi anak-anak dari simpul yang baru dibuat dan hanya menambahkannya.sumber
e.firstChild
. Sebaliknya, ia memeriksa apakahe
memiliki anak dan jika ya, pindahkan anak itu ke elemen.Saya terkejut bahwa tidak ada jawaban yang menyebutkan
insertAdjacentHTML()
metode ini. Lihat di sini . Parameter pertama adalah di mana Anda ingin string ditambahkan dan mengambil ("beforebegin", "afterbegin", "beforeend", "afterend"). Dalam situasi OP Anda akan menggunakan "beforeend". Parameter kedua hanyalah string html.Penggunaan dasar:
sumber
Uncaught TypeError: undefined is not a function
!alnafie memiliki jawaban yang bagus untuk pertanyaan ini. Saya ingin memberikan contoh kode untuk referensi:
Semoga ini bermanfaat bagi orang lain.
sumber
tetapkan data untuk div dengan simbol "+ =" Anda dapat menambahkan data termasuk data html sebelumnya
sumber
element.innerHTML += data
.Inilah yang
DocumentFragment
dimaksudkan untuk.document.createDocumentFragment
,.childNodes
sumber
(a)
berasal? Apakah itu salah cetak.Cara memancing dan sambil menggunakan kode ketat. Ada dua fungsi prasyarat yang diperlukan di bagian bawah posting ini.
Tambahkan beberapa elemen (namespace hanya perlu di elemen induk):
Kode reusable dinamis:
sumber