jquery cambia il nome della class

Voglio cambiare la class di un tag td dato l’id del tag td:

 ... 

Voglio essere in grado di farlo mentre all’interno dell’evento click di qualche altro object dom. Come posso prendere l’ID di td e cambiare la sua class?

Puoi impostare la class (indipendentemente da cosa fosse ) usando .attr() , come questo:

 $("#td_id").attr('class', 'newClass'); 

Se vuoi aggiungere una class, usa invece .addclass() , in questo modo:

 $("#td_id").addClass('newClass'); 

O un modo breve per scambiare le classi usando .toggleClass() :

 $("#td_id").toggleClass('change_me newClass'); 

Ecco l’elenco completo dei metodi jQuery specifici per l’attributo class .

Penso che tu stia cercando questo:

 $('#td_id').removeClass('change_me').addClass('new_class'); 

Penso che voglia sostituire un nome di class.

Qualcosa del genere funzionerebbe:

 $(document).ready(function(){ $('.blue').removeClass('blue').addClass('green'); }); 

da http://monstertut.com/2012/06/use-jquery-to-change-css-class/

Puoi fare questo: $("#td_id").removeClass('Old_class'); $("#td_id").addClass('New_class'); $("#td_id").removeClass('Old_class'); $("#td_id").addClass('New_class'); Oppure puoi farlo

 $("#td_id").removeClass('Old_class').addClass('New_class'); 

Puoi controllare addClass o toggleClass

Quindi vuoi cambiarlo QUANDO è cliccato … lasciami passare attraverso l’intero processo. Supponiamo che il tuo “Oggetto DOM esterno” sia un input, come una selezione:

Iniziamo con questo HTML:

  
BobSam
SueJen

Alcuni CSS molto semplici:

 ​#theTable td { border:1px solid #555; } .activeCell { background-color:#F00; } 

E imposta un evento jQuery:

 function highlightCell(useVal){ $("#theTable td").removeClass("activeCell") .filter(":contains('"+useVal+"')").addClass("activeCell"); } $(document).ready(function(){ $("#test").change(function(e){highlightCell($(this).val())}); }); 

Ora, ogni volta che si seleziona qualcosa dalla selezione, verrà automaticamente trovata una cella con il testo corrispondente, consentendo di sovvertire l’intero processo basato sull’ID. Ovviamente, se si volesse farlo in questo modo, si potrebbe facilmente modificare lo script per utilizzare gli ID piuttosto che i valori dicendo

 .filter("#"+useVal) 

e assicurati di aggiungere gli id ​​in modo appropriato. Spero che questo ti aiuti!

MODIFICARE:

Se stai dicendo che lo stai modificando da un elemento annidato , non hai affatto bisogno dell’ID. Puoi farlo invece:

 $(this).closest('td').toggleClass('change_me some_other_class'); //or $(this).parents('td:first').toggleClass('change_me some_other_class'); 

Risposta originale:

 $('#td_id').removeClass('change_me').addClass('some_other_class'); 

Un’altra opzione è:

 $('#td_id').toggleClass('change_me some_other_class'); 
 $('.btn').click(function() { $('#td_id').removeClass(); $('#td_id').addClass('newClass'); }); or $('.btn').click(function() { $('#td_id').removeClass().addClass('newClass'); }); 

Nel caso in cui tu abbia già una class e sia necessario alternare tra le classi come opposto per aggiungere una class, puoi concatenare gli eventi di commutazione:

 $('li.multi').click(function(e) { $(this).toggleClass('opened').toggleClass('multi-opened'); }); 

questo metodo funziona bene per me

 $('#td_id').attr('class','new class'); 

È meglio usare il .prop per cambiare className e ha funzionato perfettamente:

 $(#td_id).prop('className','newClass'); 

per questa riga di codice devi solo cambiare il nome di newClass, e ovviamente l’id dell’elemento, nel prossimo esempio: idelementinyourpage

 $(#idelementinyourpage).prop('className','newClass'); 

A proposito, quando vuoi cercare quale stile viene applicato a qualsiasi elemento, fai semplicemente clic su F12 sul browser quando viene visualizzata la pagina, quindi seleziona nella scheda di DOM Explorer, l’elemento che desideri visualizzare. In Stili ora puoi vedere quali stili sono applicati al tuo elemento e da quale class la sua lettura.