jquery mudar o nome da classe

quero mudar a classe de uma marca td dada a identificação da marca td:

<td id="td_id" class="change_me"> ...

eu quero ser capaz de fazer isso enquanto dentro do evento clique de algum outro objeto dom. Como é que pego na identificação do td e mudo de turma?

 287
Author: aeq, 2010-08-10

11 answers

Você pode definir a classe (independentemente do que era ) usando .attr(), assim:

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

Se quiser adicionar uma classe, use .addclass() em vez disso, assim:

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

Ou uma forma curta de trocar classes usando .toggleClass():

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

Aqui está a lista completa dos métodos jQuery especificamente para o atributo class .

 605
Author: Nick Craver, 2010-08-10 19:44:31
Acho que estás à procura disto.
$('#td_id').removeClass('change_me').addClass('new_class');
 78
Author: Fosco, 2010-08-10 19:45:03
Acho que ele quer substituir um nome de classe. Uma coisa destas funcionaria.
$(document).ready(function(){
    $('.blue').removeClass('blue').addClass('green');
});

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

 26
Author: jack, 2013-02-01 18:56:57
Tu consegues fazer isto. : $("#td_id").removeClass('Old_class'); $("#td_id").addClass('New_class'); Ou você pode fazer isso
$("#td_id").removeClass('Old_class').addClass('New_class');
 9
Author: Alireza Masali, 2015-03-27 10:50:00

Pode verificar addClass ou toggleClass

 6
Author: Karl Johan, 2010-08-10 19:45:11
Então, queres mudá-lo quando for clicado...deixe-me passar por todo o processo. Vamos assumir que o seu "objeto DOM externo" é uma entrada, como uma seleção: Vamos começar com este HTML:
<body>
  <div>
    <select id="test">
      <option>Bob</option>
      <option>Sam</option>
      <option>Sue</option>
      <option>Jen</option>
    </select>
  </div>

  <table id="theTable">
    <tr><td id="cellToChange">Bob</td><td>Sam</td></tr>
    <tr><td>Sue</td><td>Jen</td></tr>
  </table>
</body>

Alguns CSS muito básicos:

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

E organize um evento jQuery:

function highlightCell(useVal){
  $("#theTable td").removeClass("activeCell")
      .filter(":contains('"+useVal+"')").addClass("activeCell");
}

$(document).ready(function(){
    $("#test").change(function(e){highlightCell($(this).val())});
});

Agora, sempre que escolher alguma coisa da opção, ela irá encontrar automaticamente uma célula com o texto correspondente, permitindo-lhe subverter todo o processo id-based. Claro, se quiseres. faça-o dessa forma, você poderia facilmente modificar o script para usar IDs em vez de valores, dizendo

.filter("#"+useVal)

E certifique-se de adicionar as identificações apropriadamente. Espero que isto ajude!

 6
Author: Trafalmadorian, 2010-08-10 21:15:29

Editar:

Se estás a dizer que estás a mudá-lo de um elemento aninhado, não precisas da identificação. Você pode fazer isso em vez disso:
$(this).closest('td').toggleClass('change_me some_other_class');
    //or
$(this).parents('td:first').toggleClass('change_me some_other_class');

Resposta Original:

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

Outra opção é:

$('#td_id').toggleClass('change_me some_other_class');
 4
Author: user113716, 2010-08-10 20:04:14
$('.btn').click(function() {
    $('#td_id').removeClass();
    $('#td_id').addClass('newClass');
});

or

$('.btn').click(function() {
    $('#td_id').removeClass().addClass('newClass');
});
 2
Author: Prabhu, 2018-01-04 12:53:02

No caso de já ter uma classe e precisar de alternar entre classes como opondo para adicionar uma classe, poderá alternar eventos:

$('li.multi').click(function(e) {
    $(this).toggleClass('opened').toggleClass('multi-opened');
});
 0
Author: lentyai, 2015-05-02 05:52:58
Este método funciona bem para mim.
$('#td_id').attr('class','new class');
 0
Author: Puterafx Fx, 2018-01-24 03:47:53

É melhor eu usar o .prop para mudar o nome da classe e funcionou perfeitamente:

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

Para esta linha de código, basta mudar o nome da newClass, e, claro, o id do elemento, no próximo exemplo : idelementinyourpage

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

A propósito, quando quiser procurar qual o estilo que é aplicado a qualquer elemento, basta carregar em F12 no seu navegador quando a sua página é mostrada e seleccionar na página do DOM Explorer o elemento que deseja ver. Em estilos você agora pode veja que estilos são aplicados ao seu elemento e a partir de que Classe sua leitura.

 0
Author: Alexis Gassan, 2018-08-21 16:00:31