Apakah ini mungkin?
contoh:
$('a.change').click(function(){
//code to change p tag to h5 tag
});
<p>Hello!</p>
<a id="change">change</a>
Jadi mengklik jangkar perubahan harus menyebabkan <p>Hello!</p>
bagian berubah menjadi (sebagai contoh) tag h5 sehingga Anda akan berakhir dengan <h5>Hello!</h5>
setelah klik. Saya sadar Anda dapat menghapus tag p dan menggantinya dengan h5, tetapi adakah yang benar-benar memodifikasi tag HTML?
"<" + el.outerHTML.replace(/(^<\w+|\w+>$)/g, "H5") + ">";
Atau fungsi jQuery pluggable: linkBerikut ini adalah ekstensi yang akan melakukan semuanya, pada banyak elemen dalam banyak cara ...
Contoh penggunaan:
atau
atau bahkan
Sumber Plugin:
sumber
return node;
seharusnya benar-benarreturn this;
seperti yang ditunjukkan dalam "versi lama" dari plugin. Ini penting untuk merantai acara bersama seperti$("tr:first").find("td").clone().replaceTag("li").appendTo("ul#list")
Daripada mengubah jenis tag, Anda harus mengubah gaya tag (atau lebih tepatnya, tag dengan id tertentu). Ini bukan praktik yang baik untuk mengubah elemen dokumen Anda untuk menerapkan perubahan gaya. Coba ini:
sumber
Saya perhatikan bahwa jawaban pertama bukanlah yang saya butuhkan, jadi saya membuat beberapa modifikasi dan berpikir saya akan mempostingnya kembali ke sini.
Ditingkatkan
replaceTag(<tagName>)
Argumen:
Pengembalian:
Oke, saya tahu ada beberapa jawaban di sini sekarang, tetapi saya mengambil sendiri untuk menulis ini lagi.
Di sini kita dapat mengganti tag dengan cara yang sama seperti kita menggunakan kloning. Kami mengikuti sintaksis yang sama dengan .clone () dengan
withDataAndEvents
dandeepWithDataAndEvents
yang menyalin data dan kejadian node anak jika digunakan.Contoh:
Sumber:
sumber
.children()
tidak akan menyertakan node teks murni. Anda mungkin ingin mencoba.contents()
IIRC.Ide adalah membungkus elemen & membuka isinya:
Penggunaan sampel:
Demo
sumber
Saya datang dengan pendekatan di mana Anda menggunakan representasi string dari objek jQuery Anda dan mengganti nama tag menggunakan ekspresi reguler dan JavaScript dasar. Anda tidak akan kehilangan konten apa pun dan tidak perlu mengulang setiap atribut / properti.
Akhirnya, Anda dapat mengganti objek / simpul yang ada sebagai berikut:
sumber
Ini solusi saya. Memungkinkan untuk beralih di antara tag.
sumber
Ini cara cepat untuk mengubah tag HTML di dalam DOM Anda menggunakan jQuery. Saya menemukan fungsi replaceWith () ini sangat berguna.
sumber
Anda dapat mencapai dengan
data-*
atribut sepertidata-replace="replaceTarget,replaceBy"
itu dengan bantuan jQuery untuk mendapatkanreplaceTarget
&replaceBy
nilai dengan.split()
metode setelah mendapatkan nilai kemudian gunakan.replaceWith()
metode. Teknik atributini
data-*
untuk mengelola penggantian tag dengan mudah tanpa mengubah di bawah (kode umum untuk semua penggantian tag).Saya harap cuplikan di bawah ini akan banyak membantu Anda.
sumber
Fungsi berikut melakukan trik dan menyimpan semua atribut. Anda menggunakannya misalnya seperti ini:
changeTag("div", "p")
Untuk memastikan itu berfungsi, periksa contoh berikut
sumber
Apakah ada alasan khusus bahwa Anda perlu mengubah tag? Jika Anda hanya ingin membuat teks lebih besar, mengubah kelas CSS tag p akan menjadi cara yang lebih baik untuk melakukannya.
Sesuatu seperti ini:
sumber