Respostas:
Você pode definir a classe (independentemente do que era ) usando .attr()
, desta forma:
$("#td_id").attr('class', 'newClass');
Se você deseja adicionar uma classe, use o .addclass()
seguinte:
$("#td_id").addClass('newClass');
Ou uma maneira curta de trocar de classe usando .toggleClass()
:
$("#td_id").toggleClass('change_me newClass');
Aqui está a lista completa dos métodos do jQuery especificamente para o class
atributo .
.closest('td')
em vez de .parents('td:first')
:)
I want to be able to do this while inside the click event of some other dom object. How do I grab the td's id and change its class?
- Talvez eu estou lendo errado, talvez ele quer dizer usar o id do td para alterar a classe ...
<td>
em questão :)
change_me
peça é opcional se você usartoggleClass()
Eu acho que ele quer substituir um nome de classe.
Algo assim funcionaria:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
de http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Você pode fazer isso:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
Ou você pode fazer isso
$("#td_id").removeClass('Old_class').addClass('New_class');
Você pode conferir addClass ou toggleClass
Então, você deseja alterá-lo QUANDO clicada ... deixe-me passar por todo o processo. Vamos supor que o seu "Objeto DOM externo" seja 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>
Algum CSS muito básico:
#theTable td {
border:1px solid #555;
}
.activeCell {
background-color:#F00;
}
E configure 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 você seleciona algo do select, ele encontra automaticamente uma célula com o texto correspondente, permitindo subverter todo o processo baseado em id. Obviamente, se você quiser fazer dessa maneira, poderá modificar facilmente o script para usar IDs em vez de valores dizendo
.filter("#"+useVal)
e certifique-se de adicionar os IDs adequadamente. Espero que isto ajude!
EDITAR:
Se você está dizendo que está mudando de um elemento aninhado , não precisa do ID. Você pode fazer isso:
$(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');
<td>
, embora ele possa ser, re-ler atentamente :)
esse método funciona bem para mim
$('#td_id').attr('class','new class');
alterar classe usando jquery
tente isso
$('#selector_id').attr('class','new class');
você também pode definir qualquer atributo usando esta consulta
$('#selector_id').attr('Attribute Name','Attribute Value');
É melhor eu usar o .prop para alterar o className e funcionou perfeitamente:
$(#td_id).prop('className','newClass');
para esta linha de código, basta alterar o nome de newClass e, é claro, o ID do elemento, no próximo exemplo: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
A propósito, quando você deseja pesquisar qual estilo é aplicado a qualquer elemento, basta clicar em F12 no seu navegador quando sua página é exibida e selecionar na guia do DOM Explorer o elemento que deseja ver. Em Estilos, agora você pode ver quais estilos são aplicados ao seu elemento e de qual classe sua leitura.
var $td = $(this).parents('td:first')
] e obtenha seu id [var id = $td.attr('id');
] e também a classe [var class = $td.attr('class');
] porque ele deseja que um elemento de clique dentro do TD o ative