En discutant du fonctionnement des noms de classe dans les js natifs dans le groupe, quelqu'un a suggéré que les méthodes setAttribute et removeAttribute puissent être utilisées pour faire fonctionner les noms de classe. Je me suis senti très perplexe : je pensais qu'il n'y avait que classList.add() ou classList.remove. (). Il existe plusieurs façons de résoudre ce besoin, mais quelqu'un a proposé d'utiliser setAttribute('class', 'xxx') et removeAttribute('class'). Le premier sentiment est qu'il est limité et dangereux : premièrement, le nom de la classe ne peut être modifié que par le résultat spécifié, et deuxièmement, la méthode de suppression de l'attribut de classe n'a jamais été vue auparavant. Je voudrais demander si cette approche est réalisable dans le fonctionnement des noms de classe ? ?
En fait, si vous souhaitez simplement gérer l'ajout et la suppression de classes, vous pouvez également choisir d'utiliser className, ce qui peut également éviter les problèmes de compatibilité avec classList.
Vous pouvez choisir d'encapsuler vous-même les deux méthodes d'ajout et de suppression.
Le code d'implémentation est le suivant
La version navigateur de
removeAttribute
是用来删除指定属性的,class
也是属性,自然可以删除。classList
是 HTML5 的 API,如果只能用它来添加删除,你让不支持classList
est tellement embarrassante. De plus, vous saurez si vous tentez ce genre de problème.Pourquoi ne pas ajouterClass....
setAttribute modifie l'attribut global de la classe Si vous souhaitez l'utiliser pour gérer la classe, vous devez toujours porter un jugement
.class="test1 test2 test3"; Dans ce cas, si vous souhaitez setAttribute, vous devez d'abord déterminer si votre valeur existe. Si elle n'existe pas, elle sera ajoutée. Si elle existe, elle ne le sera pas. être traité. Pour le supprimer, vous devez déterminer s'il existe. S'il n'existe pas, il ne sera pas traité. S'il existe, vous ne pouvez pas supprimer les autres. . . .