1

これはIDを検索しますが、クラスは削除しません

$('[id^=paritalIDname]').removeClass('[class^=partialClassName]');

おそらく要素が次のように見えるためです

<div id="partialIDname-full" class="something someone partialClassNameFull">

要素のクラス名がであるか、partialClassNameFullそれともpartialClassNameHalf削除する必要があるか。

クラスセレクタでワイルドカードを使用できると思いました。

removeClass('[class^=partialClassName*]');

しかし、それは機能していません。

良い解決策は何ですか?(ありがとう。)

4

2 に答える 2

1

これにより、すべての部分一致が処理されます。

        $("div[id^=partialId]").each(function () {
            var cls = $(this).attr("class").split(" ");

            for (var i in cls) {
                if (/partialClass/.test(cls[i])) {
                    $(this).removeClass(cls[i]);
                    break;
                }
            }
        });
于 2012-06-14T01:18:13.150 に答える
0

両方のクラスを明示的に削除する必要があります。

$('[id^=partialIDname]').removeClass('partialClassNameFull').removeClass('partialClassNameHalf');

.removeClass()は、完全なクラス名の一致に対してのみ機能するためです。クラス名の1つが存在しない場合、何も起こりません。存在しないクラスを.removeClass()しようとしても、エラーはスローされません。

コメントで提案されているように、以下の簡単なバージョンを試すこともできます。

$('[id^=partialIDname]').removeClass('partialClassNameFull partialClassNameHalf');
于 2012-06-14T00:39:37.943 に答える