Ich habe eine Div mit einer id="a"
beliebigen Anzahl von Klassen aus mehreren Gruppen. Jede Gruppe hat ein bestimmtes Präfix. Im Javascript weiß ich nicht, welche Klasse aus der Gruppe auf der Div ist. Ich möchte in der Lage sein, alle Klassen mit einem bestimmten Präfix zu löschen und dann eine neue hinzuzufügen. Wie mache ich das, wenn ich alle Klassen entfernen möchte, die mit "bg" beginnen? So etwas, aber das funktioniert tatsächlich:
$("#a").removeClass("bg*");
javascript
jquery
css
Brad
quelle
quelle
Eine Regex-Aufteilung an der Wortgrenze
\b
ist hierfür nicht die beste Lösung:oder als jQuery-Mixin:
2018 ES6 Update:
quelle
filter
einen Booleschen Wert zurückgeben muss. Dies wird funktionieren: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"
wird zurückkehren,class=" orangeFace "
wenn Sie ausführenremoveClassPrefix("black");
. Ich habe dies gelöst, indem ich das Ergebnis wie folgt gekürzt habe :el.className = $.trim(classes.join(" "));
.Ich habe ein einfaches jQuery-Plugin geschrieben - alterClass , das Platzhalterklassen entfernt. Fügt optional auch Klassen hinzu.
quelle
Sie benötigen dafür keinen jQuery-spezifischen Code. Verwenden Sie einfach ein RegExp, um sie zu ersetzen:
Sie können dies ändern, um jedes Präfix zu unterstützen. Die schnellere Methode ist jedoch oben aufgeführt, da RegExp nur einmal kompiliert wird:
quelle
Mit 2. Unterschrift von
$.fn.removeClass
:quelle
http://www.mail-archive.com/[email protected]/msg03998.html sagt:
... und .removeClass () würden alle Klassen entfernen ...
Für mich geht das ;)
Prost
quelle
Ein Ansatz, den ich mit einfachen jQuery-Konstrukten und Array-Handling-Funktionen verwenden würde, besteht darin, eine Funktion zu deklarieren, die die ID des Steuerelements und das Präfix der Klasse übernimmt und alle klassifizierten löscht. Der Code ist beigefügt:
Jetzt kann diese Funktion von überall, per Knopfdruck oder per Code aufgerufen werden:
quelle
Ich suchte nach einer Lösung für genau das gleiche Problem. So entfernen Sie alle Klassen, die mit dem Präfix "fontid_" beginnen Nach dem Lesen dieses Artikels habe ich ein kleines Plugin geschrieben, das ich jetzt verwende.
Verwendung:
quelle
Für moderne Browser:
quelle
Ich weiß, dass es eine alte Frage ist, aber ich habe eine neue Lösung gefunden und möchte wissen, ob sie Nachteile hat.
quelle
In einer Zeile ... Entfernt alle Klassen, die einem regulären Ausdruck someRegExp entsprechen
quelle
Prestaul's Antwort war hilfreich, aber es hat bei mir nicht ganz funktioniert. Die jQuery-Methode zum Auswählen eines Objekts anhand der ID hat nicht funktioniert. Ich musste benutzen
anstatt
quelle
Ich benutze auch Bindestrich und Ziffern für den Klassennamen. Meine Version enthält also '\ d-'
quelle
quelle
quelle