1. ホーム
  2. jquery

[解決済み] jQuery .removeClass()が機能しない

2022-02-26 02:51:28

質問

テキストフィールドの背景色を変更したいので、CSSクラスを削除する必要があります。後で色を元に戻す必要があるので、いくつかのデータに応じてフィールドにクラスを追加したり削除したりする必要があります。

.addClass は全く問題なく動作しています。問題は、元のクラスが追加されたクラスより上にあるため、変更は表示されませんが、クラスは正しく追加されています。そこで、追加されたクラスより上にあるクラスを削除しようとしましたが、要素からクラスを削除することができません。なぜでしょうか?私は何を間違えているのでしょうか?以下はそのコードです。

if(i.stadt=="T") {
    $("#stadtInput").removeClass("ui-input-text input");
    $("#stadtInput").removeClass("ui-input-search input");
    $("#stadtInput").addClass( 'textboxRight' );
} else {
    $("#stadtInput").addClass( 'textboxWrong' );
}

ブラウザのWebdev-Toolsで要素を調べると textboxRight / textboxWrong クラスは追加されますが、削除されるクラスはありません。によってすべてのクラスを削除しようとしました。 .removeClass() しかし、それもうまくいきません。

解決方法は?

あなたの仕様に合うかどうかわかりませんが、jQueryのattr()メソッドは2つの引数を取り、すべてのクラスをあなたの提供するクラス名に置き換えます。他のクラスを要素に残しておきたい場合はうまくいきませんが、そうでない場合は試してみてください。

    $("#stadtInput").attr("class", "textboxRight");