J'ai un div avec id="a"
qui peut avoir n'importe quel nombre de classes attachées, de plusieurs groupes. Chaque groupe a un préfixe spécifique. Dans le javascript, je ne sais pas quelle classe du groupe est sur le div. Je veux pouvoir effacer toutes les classes avec un préfixe donné, puis en ajouter une nouvelle. Si je souhaite supprimer toutes les classes commençant par "bg", comment puis-je faire? Quelque chose comme ça, mais qui fonctionne réellement:
$("#a").removeClass("bg*");
javascript
jquery
css
Brad
la source
la source
Une regex fractionnée sur la limite du mot
\b
n'est pas la meilleure solution pour cela:ou en tant que mixin jQuery:
Mise à jour ES6 2018:
la source
filter
doit renvoyer un booléen. Cela fonctionnera: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"
reviendraclass=" orangeFace "
si vous exécutezremoveClassPrefix("black");
. Je résolu ce problème en coupe le résultat comme ceci:el.className = $.trim(classes.join(" "));
.J'ai écrit un simple plugin jQuery - alterClass , qui supprime les classes génériques. Ajoutera éventuellement des classes aussi.
la source
Vous n'avez besoin d'aucun code spécifique à jQuery pour gérer cela. Utilisez simplement un RegExp pour les remplacer:
Vous pouvez le modifier pour prendre en charge n'importe quel préfixe, mais la méthode la plus rapide est ci-dessus car RegExp ne sera compilé qu'une seule fois:
la source
En utilisant la 2ème signature de
$.fn.removeClass
:la source
http://www.mail-archive.com/[email protected]/msg03998.html dit:
... et .removeClass () supprimerait toutes les classes ...
Ça marche pour moi ;)
à votre santé
la source
Une approche que j'utiliserais en utilisant des constructions jQuery simples et des fonctions de gestion de tableau consiste à déclarer une fonction qui prend l'identifiant du contrôle et du préfixe de la classe et supprime tout classé. Le code est joint:
Maintenant, cette fonction peut être appelée de n'importe où, en cliquant sur un bouton ou à partir du code:
la source
Je cherchais une solution pour exactement le même problème. Pour supprimer toutes les classes commençant par le préfixe "fontid_" Après avoir lu cet article, j'ai écrit un petit plugin que j'utilise maintenant.
Usage:
la source
Pour les navigateurs modernes:
la source
Je sais que c'est une vieille question, mais j'ai trouvé une nouvelle solution et je veux savoir si elle a des inconvénients?
la source
En une seule ligne ... Supprime toutes les classes qui correspondent à une expression régulière someRegExp
la source
La réponse de Prestaul a été utile, mais cela n'a pas vraiment fonctionné pour moi. La méthode jQuery pour sélectionner un objet par identifiant ne fonctionnait pas. Je devais utiliser
au lieu de
la source
J'utilise également un tiret "-" et des chiffres pour le nom de la classe. Donc ma version inclut '\ d-'
la source
la source
la source