Javascript est un langage de script puissant qui peut rendre les pages Web plus vivantes et plus riches. Dans la conception Web, nous devons souvent ajouter ou supprimer certaines classes pour ajuster le style de la page Web. Cependant, si la classe n’est pas effacée, le style de la page Web sera confus et l’expérience utilisateur en sera affectée. Cet article présentera comment Javascript efface les classes pour mieux gérer les styles de pages Web.
Tout d’abord, nous devons comprendre le principe du cours. En HTML, nous pouvons spécifier un ou plusieurs noms de classe pour les éléments en ajoutant l'attribut class, par exemple :
<div class="box red"></div>
En CSS, nous pouvons utiliser le sélecteur de classe pour définir des styles pour les éléments avec des noms de classe spécifiés, par exemple :
.box { width: 100px; height: 100px; border: 1px solid black; } .red { background-color: red; }
De cette façon, nous pouvons définir l'élément avec le nom de classe spécifié sur une boîte carrée avec un fond rouge. Mais que se passe-t-il si nous voulons supprimer cette classe ?
Une méthode consiste à utiliser jQuery, par exemple :
$('.box').removeClass('red');
Cela peut supprimer la classe rouge de tous les éléments dont la classe contient un nom rouge, mais jQuery lui-même est une bibliothèque plus grande, et son introduction augmentera le temps de chargement de la page Web . Par conséquent, nous préférons utiliser les méthodes natives de Javascript pour implémenter la fonction d'effacement des classes.
1. Utilisez la méthode element.classList.remove
Javascript fournit l'attribut classList pour les éléments, qui renvoie un objet DOMTokenList contenant les noms de classe de tous les attributs de classe.
Nous pouvons utiliser la méthode Remove fournie par cet objet pour supprimer la classe spécifiée. Par exemple :
var box = document.getElementsByClassName('box')[0]; box.classList.remove('red');
Cela supprimera la classe rouge de l'élément box. Il convient de noter que classList.remove ne peut supprimer qu'une seule classe, pas plusieurs.
Si nous voulons utiliser une boucle pour supprimer les classes spécifiées par lots, nous pouvons utiliser la méthode split pour convertir l'objet classList en un tableau, puis utiliser la méthode forEach pour parcourir le tableau et supprimer les classes spécifiées. Par exemple :
var boxes = document.querySelectorAll('.box'); boxes.forEach(function(box) { box.classList.remove('red'); });
Ici, nous utilisons la méthode querySelectorAll pour sélectionner tous les éléments avec une zone de classe, puis parcourons le tableau et supprimons toutes les classes rouges.
2. Utilisez l'attribut element.className
En plus d'utiliser la méthode classList.remove, nous pouvons également modifier directement l'attribut className de l'élément pour supprimer le nom de classe à supprimer de la valeur de l'attribut.
Par exemple :
var box = document.getElementsByClassName('box')[0]; box.className = box.className.replace('red', '');
Dans cet exemple, nous utilisons la méthode replace pour remplacer la classe rouge dans la valeur de l'attribut par une chaîne vide pour supprimer la classe. Il convient de noter que s'il existe plusieurs noms de classe identiques dans la valeur de l'attribut, cette méthode ne peut en supprimer qu'un seul.
Si nous voulons supprimer tous les noms de classes rouges, nous pouvons utiliser des expressions régulières pour faire correspondre et supprimer. Par exemple :
var box = document.getElementsByClassName('box')[0]; box.className = box.className.replace(/red /g, '');
Ici, nous utilisons le drapeau g pour indiquer une correspondance globale et ajoutons des espaces à l'expression régulière pour éviter de supprimer d'autres classes contenant la chaîne rouge.
3. Utilisez les méthodes getAttribute et setAttribute
En plus de modifier directement l'attribut className, nous pouvons également utiliser les méthodes getAttribute et setAttribute pour obtenir et définir la valeur de l'attribut de classe de l'élément.
Par exemple :
var box = document.getElementsByClassName('box')[0]; var classes = box.getAttribute('class').split(' '); classes.splice(classes.indexOf('red'), 1); box.setAttribute('class', classes.join(' '));
Dans cet exemple, nous utilisons la méthode getAttribute pour obtenir la valeur de l'attribut de classe de l'élément et la convertir en tableau. Ensuite, nous utilisons la méthode splice pour supprimer la classe rouge spécifiée, et utilisons la méthode join pour reconvertir le tableau en chaîne, et utilisons la méthode setAttribute pour la définir comme nouvelle valeur d'attribut de classe.
Il convient de noter que les méthodes getAttribute et setAttribute sont plus lentes que l'attribut className. Nous devons donc choisir la méthode la plus appropriée en fonction de la situation réelle.
Conclusion
La suppression des classes est un élément essentiel de la gestion du style des pages Web. Nous pouvons utiliser les attributs jQuery, classList, className et les méthodes getAttribute et setAttribute pour réaliser la fonction d'effacement des classes. Choisir la méthode la plus appropriée en fonction de la situation réelle peut gérer efficacement les styles de pages Web et améliorer l'expérience utilisateur.
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!