Alih-alih mencari solusi untuk setiap jenis atribut dan peristiwa secara membosankan saat menggunakan sintaks berikut:
elem = document.createElement("div");
elem.id = 'myID';
elem.innerHTML = ' my Text '
document.body.insertBefore(elem,document.body.childNodes[0]);
Apakah ada cara di mana saya bisa mendeklarasikan seluruh elemen HTML sebagai string? Suka:
elem = document.createElement("<div id='myID'> my Text </div>");
document.body.insertBefore(elem,document.body.childNodes[0]);
javascript
html
Kilat
sumber
sumber
Kamu mau ini
sumber
body
elemen tetapi berfungsi dengan baik pada elemen lainnya.<body>
. Faktanya, menjalankannya<body>
adalah metode standar saya untuk memasukkan hal-hal seperti lembar gaya ke halaman web melalui konsol. Masalah apa yang Anda alami?<body>
tidak ditentukan, maka semua elemen lainnya juga, jadi ini mungkin bukan masalah Phill.Silakan lihat di sisipanHTML yang berdekatan
position adalah posisi relatif terhadap elemen yang Anda sisipkan berdekatan:
'beforebegin' Sebelum elemen itu sendiri
'afterbegin' Tepat di dalam elemen, sebelum anak pertamanya
'beforeend' Tepat di dalam elemen, setelah anak terakhirnya
'afterend' Setelah elemen itu sendiri
sumber
Di JavaScript jadul, Anda bisa melakukan ini:
Menanggapi komentar Anda:
Anda perlu memasukkan HTML baru ke dalam DOM; itulah mengapa
innerHTML
digunakan dalam contoh JavaScript jadul. TheinnerHTML
dariBODY
elemen prepended dengan HTML baru. Kami tidak benar-benar menyentuh HTML yang ada di dalamBODY
.Saya akan menulis ulang contoh yang disebutkan di atas untuk memperjelas ini:
Menggunakan kerangka kerja JavaScript akan membuat kode ini tidak terlalu bertele-tele dan meningkatkan keterbacaan. Misalnya, jQuery memungkinkan Anda melakukan hal berikut:
sumber
document.getElementsByTagName('body')[0]
memang bisa digantidocument.body
, bagus. Namun, jika Anda ingin menambahkan atau menambahkan HTML baru ke elemen lain yang sudah ada selain BODY, Anda harus menggunakandocument.getElementById()
dan / ataudocument.getElementsByTagName()
; itulah mengapa saya menggunakannya dalam contoh.Sepengetahuan saya, yang, sejujurnya, cukup baru dan terbatas, satu-satunya masalah potensial dengan teknik ini adalah kenyataan bahwa Anda dicegah untuk membuat beberapa elemen tabel secara dinamis.
Saya menggunakan formulir untuk membuat template dengan menambahkan elemen "template" ke DIV tersembunyi dan kemudian menggunakan cloneNode (true) untuk membuat klon dan menambahkannya sesuai kebutuhan. Ingatlah bahwa Anda perlu memastikan Anda menetapkan kembali id seperti yang diperlukan untuk mencegah duplikasi.
sumber
Seperti orang lain mengatakan jQuery nyaman tambahkan fungsi dapat ditiru:
Sementara beberapa orang mengatakan lebih baik untuk tidak "mengacaukan" dengan innerHTML , ini dapat diandalkan dalam banyak kasus penggunaan, jika Anda mengetahui ini:
https://developer.mozilla.org/en-US/docs/Web/API/Element/innerHTML
Atau:
insertAdjacentHTML
mungkin merupakan alternatif yang baik: https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAd BerdekatanHTMLsumber
Jika Anda ingin memasukkan kode HTML di dalam tag halaman yang ada, gunakan Jnerator . Alat ini dibuat khusus untuk tujuan ini.
Daripada menulis kode berikutnya
Anda bisa menulis struktur yang lebih bisa dimengerti
sumber