Как заменить специальный класс на другой в jquery?

например:

<li class="dataItem ready igto" status="ready">I will change status to waiting</li>

а затем я просто хочу изменить готовый класс на Ожидание. Обычный путь - удаление класса и добавление нового класса!

, а другая ситуация - как сразу заменить несколько классов!? Например:

<!-- replace done wainting error to ready -->
<li class="dataItem done igto" status="ready">I will change status to ready</li>
<li class="dataItem waiting igto" status="ready">I will change status to ready</li>
<li class="dataItem error igto" status="ready">I will change status to ready</li>

to:

<li class="dataItem ready igto" status="ready">I will change status to waiting</li>

Большое спасибо!

Ответ 1

Лучший способ - как вы говорите, удалить класс, а затем добавить его снова, так как в jQuery нет "переключения" классов.

$('.dataItem').removeClass('ready').addClass('waiting');

Вы можете заменить несколько классов, передав более чем один класс в .removeClass():

$('.dataItem').removeClass('done waiting error').addClass('ready');

Ответ 2

Вы можете использовать $.toggleClass(), чтобы достичь этого.

$("p").click(function(){
  // Replace 'done' with 'waiting' or 'waiting' with 'done'
  $(this).toggleClass("done waiting");   
});

Пример: http://jsfiddle.net/wH9x3/