Bagaimana saya bisa menerapkan prepend dan tambahkan dengan JavaScript biasa tanpa menggunakan jQuery?
javascript
append
prepend
Yosef
sumber
sumber
Jawaban:
Mungkin Anda bertanya tentang metode DOM
appendChild
daninsertBefore
.sumber
function prepend(tag, ele) { var x =document.getElementsByTagName(tag)[0]; x.insertBefore(ele ,x.children[0]); }
Berikut cuplikan untuk membuat Anda maju:
theParent.firstChild
akan memberi kita referensi ke elemen pertama di dalamtheParent
dan meletakkannyatheKid
sebelumnya.sumber
prepend()
metode bawaan?Anda tidak memberi kami banyak hal untuk dilanjutkan di sini, tapi saya pikir Anda hanya bertanya bagaimana cara menambahkan konten ke awal atau akhir suatu elemen? Jika demikian, inilah cara Anda dapat melakukannya dengan mudah:
Sangat mudah.
sumber
Jika Anda ingin memasukkan string HTML mentah tidak peduli seberapa kompleksnya, Anda dapat menggunakan
insertAdjacentHTML
:, dengan argumen pertama yang sesuai:Petunjuk: Anda selalu dapat menelepon
Element.outerHTML
untuk mendapatkan string HTML yang mewakili elemen yang akan dimasukkan.Contoh penggunaan:
DEMO
Perhatian:
insertAdjacentHTML
tidak melindungi pendengar yang terlampir.addEventLisntener
.sumber
insertAdjacentHTML
Tidak melindungi pendengar ..." Pendengar apa? Ini HTML, jadi belum ada elemen yang diikat. Jika Anda merujuk ke elemen yang ada di dalamfoo
, maka itu bukan pernyataan yang benar. Intinya.insertAdjacentHTML
adalah bahwa hal itu melestarikan pendengar. Anda mungkin berpikir.innerHTML += "..."
, yang menghancurkan node DOM lama.insertAdjacentHTML
(bukan root maupun keturunan root yang ada)Saya menambahkan ini pada proyek saya dan sepertinya berhasil:
Contoh:
sumber
Untuk menyederhanakan hidup Anda, Anda dapat memperpanjang
HTMLElement
objek. Ini mungkin tidak berfungsi untuk peramban yang lebih lama, tetapi jelas membuat hidup Anda lebih mudah:Jadi lain kali Anda dapat melakukan ini:
sumber
Berikut adalah contoh penggunaan prepend untuk menambahkan paragraf ke dokumen.
hasil:
sumber
Pada 2017 saya tahu untuk Edge 15 dan IE 12, metode prepend tidak termasuk sebagai properti untuk elemen Div, tetapi jika ada yang membutuhkan referensi cepat ke polyfill fungsi saya membuat ini:
Fungsi panah sederhana yang kompatibel dengan sebagian besar browser modern.
sumber
Jika referenceElement adalah nol, atau tidak terdefinisi, newElement dimasukkan pada akhir daftar node anak.
Contohnya dapat ditemukan di sini: Node.insertBefore
sumber
Anda juga dapat menggunakan unshift () untuk menambahkan ke daftar
sumber
Ini bukan cara terbaik untuk melakukannya tetapi jika ada yang ingin memasukkan elemen sebelum semuanya, ini caranya.
sumber