ネイティブ JS でのクラス名の操作についてのグループ ディスカッションで、クラス名の操作には setAttribute メソッドとremoveAttribute メソッドを使用できるという意見があり、classList.add() か classList しかないと思っていたため、非常に困惑しました。 .remove( ) このメソッドはこのニーズを解決できますが、setAttribute('class', 'xxx') とremoveAttribute('class') の使用を提案した人がいます。第一に、クラス名は指定された結果にしか変更できないこと、第二に、クラス属性を削除するメソッドがこれまでに見たことがないこと、つまり制限があり安全ではないということです。このアプローチがクラス名の操作で実現可能かどうかを尋ねたいのですが? ?
我想大声告诉你2017-05-19 10:48:49
実際、クラスの追加と削除を処理したいだけの場合は、className の使用を選択することもできます。これにより、classList との互換性の問題も回避できます。
2 つの追加メソッドと削除メソッドを自分でカプセル化することを選択できます。
実装コードは以下の通りです
リーリー曾经蜡笔没有小新2017-05-19 10:48:49
removeAttribute
是用来删除指定属性的, class
也是属性,自然可以删除。classList
是 HTML5 的 API,如果只能用它来添加删除,你让不支持 classList
のブラウザ版はとても恥ずかしいです。また、このような問題をやってみると分かります。
高洛峰2017-05-19 10:48:49
addClass を試してみませんか....
setAttribute はクラス全体の属性を変更します。クラスを扱うために使用したい場合は、やはり判断が必要です
。class="test1 test2 test3"; この場合、setAttribute を行う場合は、まず値が存在するかどうかを判断する必要があります。存在しない場合は、値が追加されます。削除の場合は、存在するかどうかを判断する必要があります。存在しない場合は、他のものは削除できません。 。 。 。