Saya mencari untuk mengganti elemen di DOM.
Misalnya, ada <a>
elemen yang ingin saya ganti dengan yang <span>
sebaliknya.
Bagaimana saya akan pergi dan melakukan itu?
javascript
dom
Oh Tuhan
sumber
sumber
target.replaceWith(element);
adalah cara (ES5 +) modern untuk melakukan iniJawaban:
dengan menggunakan replaceChild () :
sumber
a adalah elemen A yang diganti.
sumber
A.replaceWith(span)
- Tidak perlu orang tuaBentuk umum:
Jauh lebih baik / lebih bersih dari metode sebelumnya.
Untuk kasus penggunaan Anda:
Mozilla Docs
Browser yang Didukung - 94% Apr 2020
sumber
Pertanyaan ini sudah sangat lama, tetapi saya mendapati diri saya belajar untuk Sertifikasi Microsoft, dan dalam buku studi disarankan untuk menggunakan:
Saya mencarinya dan tampaknya hanya didukung di IE. Doh ..
Saya pikir saya hanya akan menambahkannya di sini sebagai catatan samping yang lucu;)
sumber
Saya memiliki masalah serupa dan menemukan utas ini. Ganti tidak bekerja untuk saya, dan pergi oleh orang tua sulit untuk situasi saya. Html batin menggantikan anak-anak, yang juga bukan yang saya inginkan. Menggunakan outerHTML menyelesaikan pekerjaan. Semoga ini bisa membantu orang lain!
sumber
Anda dapat mengganti Node menggunakan
Node.replaceWith(newNode)
.Contoh ini harus menjaga semua atribut dan childs dari node asal:
sumber
Contoh untuk mengganti elemen LI
sumber
Dengan opsi yang sudah diusulkan, solusi termudah tanpa menemukan orangtua:
sumber