Risposte:
Puoi impostare la classe (indipendentemente da quale fosse ) utilizzando .attr()
, in questo modo:
$("#td_id").attr('class', 'newClass');
Se vuoi aggiungere una classe, usa .addclass()
invece, 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 specificamente per l' class
attributo .
.closest('td')
invece di .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?
- forse sto leggendo male, forse intende usare l'id del td per cambiare classe ...
<td>
questione :)
change_me
parte è facoltativa se si utilizzatoggleClass()
Penso che voglia sostituire un nome di classe.
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 farlo:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
O puoi farlo
$("#td_id").removeClass('Old_class').addClass('New_class');
Puoi dare un'occhiata a addClass o toggleClass
Quindi vuoi cambiarlo QUANDO viene cliccato ... lasciami passare l'intero processo. Supponiamo che il tuo "oggetto DOM esterno" sia un input, come una selezione:
Cominciamo con questo 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>
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 scegli qualcosa dalla selezione, troverà automaticamente una cella con il testo corrispondente, permettendoti di sovvertire l'intero processo basato su ID. Naturalmente, se si desidera farlo in questo modo, è possibile modificare facilmente lo script per utilizzare gli ID anziché 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 cambiando da un elemento nidificato , non hai 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');
<td>
, sebbene possa essere, rileggere attentamente :)
questo metodo funziona bene per me
$('#td_id').attr('class','new class');
cambia classe usando jquery
prova questo
$('#selector_id').attr('class','new class');
puoi anche impostare qualsiasi attributo usando questa query
$('#selector_id').attr('Attribute Name','Attribute Value');
Uso meglio 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 clic su F12 sul browser quando viene visualizzata la tua pagina, quindi seleziona nella scheda di DOM Explorer l'elemento che vuoi vedere. In Stili ora puoi vedere quali stili sono applicati al tuo elemento e da quale classe la sua lettura.
var $td = $(this).parents('td:first')
], quindi ottiene il suo id [var id = $td.attr('id');
] e anche la classe [var class = $td.attr('class');
] perché vuole che un elemento clic all'interno del TD lo