Saya memiliki kode berikut
<b class="xyzxterms" style="cursor: default; ">bryant keil bio</b>
Bagaimana cara mengganti b
tag ke h1
tag tetapi tetap mempertahankan semua atribut dan informasi lainnya?
javascript
jquery
bammab
sumber
sumber
Jawaban:
Inilah salah satu cara Anda dapat melakukannya dengan jQuery:
Contoh: http://jsfiddle.net/yapHk/
Perbarui , inilah pluginnya:
Contoh: http://jsfiddle.net/mmNNJ/
sumber
children
tidak berhasil tetapicontents
berhasil..each
blok seperti jawaban di bawah ini juga menunjukkan.Tidak yakin tentang jQuery. Dengan JavaScript biasa, Anda dapat melakukan:
DEMO
Tidak yakin seberapa kompatibel lintas-browser ini.
Variasinya bisa berupa:
Untuk informasi lebih lanjut lihat
Node.attributes
[MDN] .sumber
while(child = child.nextSibling)
gagal. Terima kasih!@jakov dan @Andrew Whitaker
Berikut adalah penyempurnaan lebih lanjut sehingga bisa menangani banyak elemen sekaligus.
sumber
Jawaban @ Jazzbo mengembalikan objek jQuery yang berisi larik objek jQuery, yang tidak dapat dirantai. Saya telah mengubahnya sehingga mengembalikan objek yang lebih mirip dengan apa yang akan dikembalikan $ .each:
(Juga melakukan beberapa pembersihan kode sehingga melewati jslint.)
sumber
each
loop).Satu-satunya cara yang dapat saya pikirkan adalah menyalin semuanya secara manual: contoh jsfiddle
HTML
Jquery / Javascript
sumber
@ Andrew Whitaker: Saya mengusulkan perubahan ini:
Kemudian Anda dapat melakukan hal-hal seperti:
$('<div>blah</div>').changeElementType('pre').addClass('myclass');
sumber
Saya suka ide @AndrewWhitaker dan lainnya, menggunakan plugin jQuery - untuk menambahkan
changeElementType()
metode. Tetapi sebuah plugin itu seperti kotak hitam, tanpa masalah tentang kodenya, jika itu litle dan berfungsi dengan baik ... Jadi, kinerja diperlukan, dan yang paling penting daripada kode."Pure javascript" memiliki kinerja yang lebih baik daripada jQuery: Saya pikir kode @ FelixKling memiliki kinerja yang lebih baik daripada @ AndrewWhitaker dan lainnya.
Berikut kode "Javavascript murni" (dan "DOM murni"), yang dikemas menjadi plugin jQuery :
sumber
Berikut adalah metode yang saya gunakan untuk mengganti tag html di jquery:
sumber
Dengan
jQuery
tanpa mengulang atribut:The
replaceElem
metode di bawah ini menerimaold Tag
,new Tag
dancontext
dan mengeksekusi penggantian berhasil:Semoga berhasil...
sumber
Solusi Javascript
Salin atribut elemen lama ke elemen baru
Ganti elemen lama dengan elemen baru
sumber
map
membuat array baru yang tidak digunakan, itu bisa diganti denganforEach
.Ini versi saya. Ini pada dasarnya adalah versi @ fiskhandlarn, tetapi alih-alih membuat objek jQuery baru, itu hanya menimpa elemen lama dengan yang baru dibuat, jadi tidak perlu penggabungan.
Demo: http://jsfiddle.net/0qa7wL1b/
sumber