Maison >interface Web >tutoriel CSS >Comment supprimer des classes avec un préfixe spécifique en JavaScript ?

Comment supprimer des classes avec un préfixe spécifique en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-28 02:19:101082parcourir

How to Remove Classes with a Specific Prefix in JavaScript?

Comment supprimer des classes avec un préfixe spécifique

Énoncé du problème

Vous avez un élément div avec un ID "a" avec plusieurs classes attachées à il, regroupés par préfixes spécifiques. Vous souhaitez supprimer toutes les classes d'un certain groupe sans connaître les noms de classe spécifiques. Par exemple, votre objectif est d'éliminer toutes les classes de préfixes « bg ».

Solution

Approche Regex :

var prefix = "bg";
var classes = $("#a").attr("class").split(" ").filter(function(c) {
    return !(c.match("^" + prefix + "\b"));
});
$("#a").attr("class", classes.join(" "));

Approche en boucle :

var prefix = "bg";
var classes = $("#a").attr("class").split(" ");
for (var i = 0; i < classes.length; i++) {
    if (classes[i].startsWith(prefix)) {
        classes.splice(i, 1);
        i--;
    }
}
$("#a").attr("class", classes.join(" "));

Plugin jQuery (ES5):

$.fn.removeClassPrefix = function(prefix) {
    return this.each(function() {
        var classes = $(this).attr("class").split(" ").filter(function(c) {
            return !c.startsWith(prefix);
        });
        $(this).attr("class", classes.join(" "));
    });
};

$("#a").removeClassPrefix("bg");

Alternative ES6 (syntaxe plus propre):

const prefix = "bg";
const classes = $("#a").attr("class").split(" ").filter(c => !c.startsWith(prefix));
$("#a").attr("class", classes.join(" "));

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn