Saya memiliki div id="a"
yang mungkin memiliki sejumlah kelas yang menyertainya, dari beberapa grup. Setiap kelompok memiliki prefiks tertentu. Di javascript, saya tidak tahu kelas mana dari grup yang ada di div. Saya ingin menghapus semua kelas dengan prefiks tertentu dan kemudian menambahkan yang baru. Jika saya ingin menghapus semua kelas yang dimulai dengan "bg", bagaimana cara melakukannya? Sesuatu seperti ini, tetapi itu benar-benar berfungsi:
$("#a").removeClass("bg*");
javascript
jquery
css
Brad
sumber
sumber
Pemisahan regex pada batas kata
\b
bukanlah solusi terbaik untuk ini:atau sebagai mixin jQuery:
Pembaruan ES6 2018:
sumber
filter
harus mengembalikan boolean. Ini akan berhasil:var classes = $(e).attr("class").split(" "); $(classes).each(function(i, item) { classes[i] = item.indexOf("prefix") === -1 ? item : "prefix-new"); }); $(e).attr("class", classes.join(" "));
$e.attr('class', $.map($e.attr('class').split(' '), function (klass) { return klass.indexOf(prefix) != 0 ? klass : undefined; }).join(' '));
class="blackRow blackText orangeFace blackHead"
akan kembaliclass=" orangeFace "
jika Anda menjalankanremoveClassPrefix("black");
. Aku memecahkan ini dengan pemangkasan hasil seperti:el.className = $.trim(classes.join(" "));
.Saya telah menulis plugin jQuery sederhana - alterClass , yang melakukan penghapusan kelas wildcard. Secara opsional akan menambahkan kelas juga.
sumber
Anda tidak memerlukan kode khusus jQuery untuk menangani ini. Cukup gunakan RegExp untuk menggantinya:
Anda dapat memodifikasi ini untuk mendukung awalan apa pun tetapi metode yang lebih cepat ada di atas karena RegExp hanya akan dikompilasi sekali:
sumber
Menggunakan tanda tangan kedua dari
$.fn.removeClass
:sumber
http://www.mail-archive.com/[email protected]/msg03998.html mengatakan:
... dan .removeClass () akan menghapus semua kelas ...
Ini bekerja untuk saya;)
Bersulang
sumber
Pendekatan yang akan saya gunakan menggunakan konstruksi jQuery sederhana dan fungsi penanganan array, adalah mendeklarasikan fungsi yang mengambil id dari kontrol dan awalan kelas dan menghapus semua yang diklasifikasikan. Kode terlampir:
Sekarang fungsi ini bisa dipanggil dari mana saja, dengan mengklik tombol atau dari kode:
sumber
Saya sedang mencari solusi untuk masalah yang persis sama. Untuk menghapus semua kelas dimulai dengan awalan "fontid_" Setelah membaca artikel ini saya menulis sebuah plugin kecil yang saya gunakan sekarang.
Pemakaian:
sumber
Untuk browser modern:
sumber
Saya tahu ini pertanyaan lama, tetapi saya menemukan solusi baru dan ingin tahu apakah ada kerugiannya?
sumber
Dalam satu baris ... Menghapus semua kelas yang cocok dengan ekspresi reguler someRegExp
sumber
Jawaban Prestaul sangat membantu, tetapi tidak berhasil bagi saya. Cara jQuery untuk memilih objek berdasarkan id tidak berfungsi. Saya harus menggunakan
dari pada
sumber
Saya juga menggunakan tanda hubung'- 'dan angka untuk nama kelas. Jadi versi saya menyertakan '\ d-'
sumber
sumber
sumber