Y a-t-il un meilleur moyen de faire cela? Je veux supprimer toutes les classes de classe- (n). p> p>
4 Réponses :
Obtenez les classes de l'élément, le traiter comme une chaîne et le remettez-le:
$('element').attr( 'class', $('element').attr('class').replace(/\bclass-\d+\b/g, '') );
Le sélecteur serait éteint par élément cependant, je l'écrirais comme ceci: $ ('élément'). ATTR ('classname', fonction (i, c) {retour c.replace (/ \ bclass- \ d + \ b / g, '');}); code>
@NICK CRAVER: Oui, ce serait utile si vous devez l'appliquer à des éléments de Seveal. :)
L'attribut doit être "classe", pas "Nom de classe", par ex. $ ('élément'). Attrib ('classe', $ ("élément '). ATTR (" classe "). Remplacer (/ \ bclass- \ d + \ b / g,' ')); Code>
@ T1GOR: La méthode attr code> a changé car la réponse a été postée. J'ai édité la réponse pour inclure le code qui fonctionne avec des versions ultérieures de JQuery.
le faire de manière meilleure à l'aide du sélecteur CSS, [TYPE * = VALEUR] CODE>
$(function() {
var i = 0;
while( ++i <= 105) {
$('b').addClass('class-'+ i);
}
var clas = '';
var arey =[]
$('input[type=button]').click(function() {
clas = $('b').attr('class');
arey = clas.match(/class-\d{1,3}/g);
$.each(arey, function(i, e) {
$('b').removeClass(e);
});
});
});
Cela supposerait que chaque élément n'a qu'une classe avec classe - code> et qu'ils apparaissent dans l'ordre numérique parfait dans le document. Je ne pense pas que ce soit le point de la question.
@patrick, oui tu as raison. Y a-t-il une meilleure façon de faire cela en utilisant le même sélecteur? Je suis juste curieux de savoir
@Nick Craververs Répondre (dans le commentaire sous la réponse acceptée) est probablement la meilleure façon d'aller, bien qu'elle nécessite JQuery 1.4 ou plus tard. Je posterai une réponse qui fonctionnerait pour Pre-JQuery 1.4.
Oui, cela semblerait fonctionner si vous n'avez qu'un seul élément. S'il y en a plus d'un, vous voudriez placer votre code dans un .uite () code> et utiliser chaque élément individuellement. Un peu compliqué, mais devrait travailler. : o)
... ou vous pouvez utiliser un Démarre avec sélecteur Si vous connaissez les noms de classe possibles que vous souhaitez supprimer. La partie méchant de la tâche est le nombre de classes à rechercher ...
Voici un petit plugin JQuery que j'utilise à cet effet:
$(...).removeClassWild('class-*');