1. ホーム
  2. javascript

[解決済み] 1つのクラスを除くすべてのクラスを削除する

2022-12-26 15:54:59

質問

jQueryのアクションで、特定のdivにたくさんのクラスを追加できることは知っています。

<div class="cleanstate"></div>

クリックなどで、divにたくさんのクラスがついたとします。

<div class="cleanstate bgred paddingleft allcaptions ..."></div>

では、1つのクラスを除いてすべてのクラスを削除するにはどうすればよいのでしょうか。私が思いついたのは、これだけです。

$('#container div.cleanstate').removeClass().addClass('cleanstate');

一方 removeClass() はすべてのクラスを殺してしまうので、div はめちゃくちゃになりますが、その直後に addClass('cleanstate') を追加すると元に戻ります。他の解決策は、それらが削除されないようにベースCSSプロパティでID属性を置くことであり、それはまた、パフォーマンスを向上させますが、私はちょうど".cleanstate"以外のすべてを取り除くために別のソリューションを知りたいです。

実際のスクリプトでは、divはクラスの様々な変更に苦しんでいるので、私はこれを求めています。

どのように解決するのですか?

2つのステップで行うのではなく、全体の値を一度にリセットするために attr を使って、すべてのクラスの値を必要なクラスで上書きすることができます。

jQuery('#container div.cleanstate').attr('class', 'cleanstate');

サンプルです。 http://jsfiddle.net/jtmKK/1/