2011-02-15 862 views
11

por ejemplo:¿Cómo reemplazo una clase especial con otra en jquery?

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

y luego, sólo quiero cambiar la clase listos a la espera .La forma normal es que la eliminación dela clase listos y añadiendo nueva clase!

y otra situación es cómo reemplazar multi clase a la vez? Por ejemplo:

<!-- 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> 

a:

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

Muchas gracias !!

Respuesta

21

La mejor manera es hacer lo que dices, eliminar la clase y luego volver a agregarla, ya que no hay clases de "cambio" en jQuery.

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

Puede reemplazar múltiples clases pasando en más de una clase en .removeClass():

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

Puede utilizar $.toggleClass() para lograrlo.

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

Ejemplo: http://jsfiddle.net/wH9x3/

+1

1 Primera y limpio. – JCOC611

+0

No es confiable, ya que se alternará cada vez, incluso cuando no lo deseemos. – sidney

+0

@sidney El punto es mostrar cómo funciona '$ .fn.toggleClass'. Depende de quienes lo usan envolverlo condicionalmente para que se ejecute solo bajo ciertas circunstancias. – Sampson

Cuestiones relacionadas