javascript - setAttribute/removeAttribute を使用してクラス名を追加または削除できますか?
过去多啦不再A梦
过去多啦不再A梦 2017-05-19 10:46:49
0
3
1013

ネイティブ JS でのクラス名の操作についてのグループ ディスカッションで、クラス名の操作には setAttribute メソッドとremoveAttribute メソッドを使用できるという意見があり、classList.add() か classList しかないと思っていたため、非常に困惑しました。 .remove( ) このメソッドはこのニーズを解決できますが、setAttribute('class', 'xxx') とremoveAttribute('class') の使用を提案した人がいます。第一に、クラス名は指定された結果にしか変更できないこと、第二に、クラス属性を削除するメソッドがこれまでに見たことがないこと、つまり制限があり安全ではないということです。このアプローチがクラス名の操作で実現可能かどうかを尋ねたいのですが? ?

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

全員に返信(3)
我想大声告诉你

実際、クラスの追加と削除を処理したいだけの場合は、className の使用を選択することもできます。これにより、classList との互換性の問題も回避できます。

2 つの追加メソッドと削除メソッドを自分でカプセル化することを選択できます。

実装コードは以下の通りです

リーリー
いいねを押す +0
曾经蜡笔没有小新

removeAttribute 是用来删除指定属性的, class 也是属性,自然可以删除。classList 是 HTML5 的 API,如果只能用它来添加删除,你让不支持 classListのブラウザ版はとても恥ずかしいです。また、このような問題をやってみると分かります。

いいねを押す +0
小葫芦

addClass を試してみませんか....

setAttribute はクラス全体の属性を変更します。クラスを扱うために使用したい場合は、やはり判断が必要です

class="test1 test2 test3"; この場合、setAttribute を行う場合は、まず値が存在するかどうかを判断する必要があります。存在しない場合は、値が追加されます。削除の場合は、存在するかどうかを判断する必要があります。存在しない場合は、他のものは削除できません。 。 。 。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート