Saya memiliki beberapa HTML sederhana yang saya perlukan untuk menghapus pemformatan sederhana.
A nice house was found in <b>Toronto</b>.
Saya perlu menghapus huruf tebal, tetapi membiarkan kalimatnya tetap utuh.
Bagaimana ini bisa dilakukan di jQuery?
unwrap()
dan tidak bisa mengingat bagaimana mendapatkan bagian teks, lupa tentang.contents()
- sangat baik..replacewith()
karena traversal DOM ekstra ... jika itu hanya<b>
tag dengan HTML, ia menjadi lebih cepat.parent.normalize()
setelahparent.removeChild(...
untuk menggabungkan node teks yang berdekatan. Ini bermanfaat jika Anda terus memodifikasi halaman.Anda juga dapat menggunakan
.replaceWith()
, seperti ini:Atau jika Anda tahu itu hanya string:
Ini dapat membuat perbedaan besar jika Anda membuka banyak elemen karena kedua pendekatan di atas secara signifikan lebih cepat daripada biaya
.unwrap()
.sumber
Cara paling sederhana untuk menghapus elemen html dalam dan mengembalikan hanya teks adalah fungsi JQuery .text () .
Contoh:
Demo jsFiddle
sumber
Bagaimana dengan ini?
Baris pertama menyalin konten HTML dari
b
tag ke lokasi langsung setelahb
tag, dan kemudian baris kedua menghapusb
tag dari DOM, hanya menyisakan konten yang disalin.Saya biasanya membungkus ini menjadi fungsi untuk membuatnya lebih mudah digunakan:
Semua kode sebenarnya Javascript murni, satu-satunya JQuery yang digunakan adalah untuk memilih elemen yang akan ditargetkan (
b
tag pada contoh pertama). Fungsinya hanya JS: DLihat juga:
sumber
sumber
Solusi asli lain (dalam kopi):
Saya tidak tahu apakah ini lebih cepat daripada solusi user113716, tetapi mungkin lebih mudah dimengerti untuk beberapa orang.
sumber
Jawaban paling sederhana adalah hembusan pikiran:
outerHTML didukung hingga Internet Explorer 4!
Ini dia untuk melakukannya dengan javascript bahkan tanpa jQuery
Ini harus bekerja di semua browser utama termasuk IE lama. di peramban baru-baru ini, kita bahkan dapat memanggil masing-masing tepat pada nodelist.
sumber