javascript - Puis-je utiliser setAttribute/removeAttribute pour ajouter ou supprimer des noms de classe?
过去多啦不再A梦
过去多啦不再A梦 2017-05-19 10:46:49
0
3
1035

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 ? ?

过去多啦不再A梦
过去多啦不再A梦

répondre à tous(3)
我想大声告诉你

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

ele.className += ' clsName'; //添加类名
ele.className = ele.className.replace(/ ?deleteClsName/g,''); //删除类名
曾经蜡笔没有小新

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. . . .

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal