0

私は小さなjQueryケースを持っています。したがって、すべてのブロック クラスを削除したいのですが、例外はほとんどありません。この div/block にいくつかのクラスがある場合、それらのすべてが削除されますが、指定されていません。私はこのようなことを試みましたが、うまくいきません。

$('#rounded_items').removeClass(function(){
    $('#rounded_items').not.getElementsByClassName('small_menu');
}).addClass('main_menu');

手伝って頂けますか?

4

4 に答える 4

2

正確に何をしようとしているのかは少し不明ですが、私の最善の推測は次のようなものです。

$('#rounded_items:not(.small_menu)').removeClass().addClass('main_menu');

main_menu...これにより、すべてのクラス名が、 class を除くID rounded_items(!!!) を持つすべてのアイテムに置き換えられますsmall_menu

IDは一意である必要があることに注意してください。それを十分に強調することはできません。そのため、ID で選択して複数の要素を期待して、クラスでさらにフィルター処理できるようにするのは意味がありません。

于 2012-08-16T10:45:18.580 に答える
1

オブジェクトに削除してはならないこのクラスがあるかどうかを確認できませんか。ある場合は、すべてのクラスを削除して、必要なクラスを追加します。このようなもの:

if ($("#item").hasClass("neededClass")){
   $("#item").removeClass();
   $("#item").addClass("neededClass");
}

これがあなたのやりたいことかどうかわかりません。

于 2012-08-16T10:52:16.967 に答える
1

ID は一意である必要があるため、クラスを削除する前に、ターゲットにしている単一の要素にクラスがないことを確認するだけです。

var isSmall = $('#rounded_items').is('.small_menu');
$('#rounded_items').attr('class', isSmall ? 'main_menu' : '');
于 2012-08-16T10:45:45.833 に答える
0

次のコードを使用

$('#rounded_items').removeClass(function(){
     var el = $('.small_menu');
    $('#rounded_items').not(el);
}).addClass('main_menu');
于 2012-08-16T10:45:55.877 に答える