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

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

Linda Hamilton
Libérer: 2024-11-30 02:46:14
original
113 Les gens l'ont consulté

How to Efficiently Remove Classes with a Specific Prefix in JavaScript?

Gérer des classes avec des préfixes spécifiques

La manipulation de classes en JavaScript peut être difficile, en particulier lorsqu'il s'agit de plusieurs classes appartenant à différents groupes avec des préfixes uniques . Cet article explore un problème courant : supprimer des classes avec un préfixe spécifique d'un élément DIV et les remplacer par un nouveau.

Le problème

Supposons que vous ayez un DIV élément avec un ID de « a » qui peut avoir plusieurs classes de différents groupes. Chaque groupe a un préfixe spécifique. Cependant, dans votre code JavaScript, vous ne savez peut-être pas quelle classe d'un groupe spécifique est actuellement affectée à l'élément DIV. Votre objectif est de supprimer toutes les classes avec un préfixe tel que "bg" et d'en ajouter une nouvelle. L'extrait de code suivant illustre le problème :

$("#a").removeClass("bg*");
Copier après la connexion

Cependant, ce code ne fonctionne pas comme prévu.

Solution

Une approche plus robuste consiste à utiliser une expression régulière qui divise les noms de classe en fonction des limites des mots et filtre les classes qui n'ont pas le préfixe spécifié. Voici un exemple :

var prefix = "bg";
var classes = el.className.split(" ").filter(function(c) {
    return c.lastIndexOf(prefix, 0) !== 0;
});
el.className = classes.join(" ").trim();
Copier après la connexion

Vous pouvez également créer un mixin jQuery pour simplifier ce processus :

$.fn.removeClassPrefix = function(prefix) {
    this.each(function(i, el) {
        var classes = el.className.split(" ").filter(function(c) {
            return c.lastIndexOf(prefix, 0) !== 0;
        });
        el.className = $.trim(classes.join(" "));
    });
    return this;
};
Copier après la connexion

Pour utiliser ce mixin, appelez simplement la fonction removeClassPrefix() sur le DIV élément, en spécifiant le préfixe que vous souhaitez supprimer :

$("#a").removeClassPrefix("bg");
Copier après la connexion

Mise à jour ES6 (2018)

Dans JavaScript moderne (ES6 et supérieur), vous pouvez utiliser une version plus simple de la solution :

const prefix = "bg";
const classes = el.className.split(" ").filter(c => !c.startsWith(prefix));
el.className = classes.join(" ").trim();
Copier après la connexion

Ce code exploite la fonction flèche et démarreAvec() méthode pour filtrer efficacement les classes avec le préfixe spécifié.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal