Antworten:
Sie können die Klasse (unabhängig davon, was sie war ) folgendermaßen festlegen :.attr()
$("#td_id").attr('class', 'newClass');
Wenn Sie eine Klasse hinzufügen möchten , verwenden Sie .addclass()
stattdessen Folgendes:
$("#td_id").addClass('newClass');
Oder eine kurze Möglichkeit, Klassen auszutauschen, indem Sie .toggleClass()
:
$("#td_id").toggleClass('change_me newClass');
Hier ist die vollständige Liste der jQuery-Methoden speziell für das class
Attribut .
.closest('td')
anstelle von verwenden .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?
- vielleicht lese ich es falsch, vielleicht meint er damit die td's id zu benutzen um die klasse zu wechseln ...
<td>
fraglichen Objekts befindet :)
change_me
Teil optional ist, wenn SietoggleClass()
Ich denke, er möchte einen Klassennamen ersetzen.
So etwas würde funktionieren:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
von http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Sie können dies tun:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
Oder Sie können dies tun
$("#td_id").removeClass('Old_class').addClass('New_class');
Sie können addClass oder toggleClass auschecken
Sie möchten es also ändern, wenn es angeklickt wird ... lassen Sie mich den gesamten Prozess durchgehen. Nehmen wir an, Ihr "Externes DOM-Objekt" ist eine Eingabe wie eine Auswahl:
Beginnen wir mit diesem 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>
Einige sehr grundlegende CSS:
#theTable td {
border:1px solid #555;
}
.activeCell {
background-color:#F00;
}
Und richten Sie ein jQuery-Ereignis ein:
function highlightCell(useVal){
$("#theTable td").removeClass("activeCell")
.filter(":contains('"+useVal+"')").addClass("activeCell");
}
$(document).ready(function(){
$("#test").change(function(e){highlightCell($(this).val())});
});
Wenn Sie jetzt etwas aus der Auswahl auswählen, wird automatisch eine Zelle mit dem passenden Text gefunden, sodass Sie den gesamten ID-basierten Prozess untergraben können. Wenn Sie dies auf diese Weise tun möchten, können Sie das Skript natürlich leicht so ändern, dass IDs anstelle von Werten verwendet werden
.filter("#"+useVal)
und stellen Sie sicher, dass Sie die IDs entsprechend hinzufügen. Hoffe das hilft!
BEARBEITEN:
Wenn Sie sagen, dass Sie es von einem verschachtelten Element aus ändern , benötigen Sie die ID überhaupt nicht. Sie können dies stattdessen tun:
$(this).closest('td').toggleClass('change_me some_other_class');
//or
$(this).parents('td:first').toggleClass('change_me some_other_class');
Ursprüngliche Antwort:
$('#td_id').removeClass('change_me').addClass('some_other_class');
Eine weitere Option ist:
$('#td_id').toggleClass('change_me some_other_class');
<td>
, obwohl er sein könnte, sorgfältig
Diese Methode funktioniert gut für mich
$('#td_id').attr('class','new class');
Klasse mit jquery ändern
Versuche dies
$('#selector_id').attr('class','new class');
Mit dieser Abfrage können Sie auch ein beliebiges Attribut festlegen
$('#selector_id').attr('Attribute Name','Attribute Value');
Ich benutze besser die .prop, um den Klassennamen zu ändern und es hat perfekt funktioniert:
$(#td_id).prop('className','newClass');
Für diese Codezeile müssen Sie nur den Namen von newClass und natürlich die ID des Elements im nächsten Beispiel ändern: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
Übrigens, wenn Sie suchen möchten, welcher Stil auf ein Element angewendet wird, klicken Sie einfach in Ihrem Browser auf F12, wenn Ihre Seite angezeigt wird, und wählen Sie dann auf der Registerkarte des DOM-Explorers das Element aus, das Sie sehen möchten. In Stile können Sie jetzt sehen, welche Stile auf Ihr Element angewendet werden und von welcher Klasse es gelesen wird.
var $td = $(this).parents('td:first')
] findet und dann seine ID [var id = $td.attr('id');
] und auch die Klasse [var class = $td.attr('class');
] erhält, weil er möchte, dass ein