Maison  >  Questions et réponses  >  le corps du texte

javascript - Puis-je utiliser setAttribute/removeAttribute pour ajouter ou supprimer des noms de classe?

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梦2683 Il y a quelques jours962

répondre à tous(3)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:48:49

    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,''); //删除类名

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:48:49

    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.

    répondre
    0
  • 高洛峰

    高洛峰2017-05-19 10:48:49

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

    répondre
    0
  • Annulerrépondre