Odpowiedzi:
Możesz ustawić klasę (bez względu na to, co to było ), używając .attr():
$("#td_id").attr('class', 'newClass');
Jeśli chcesz dodać klasę, użyj .addclass()zamiast tego:
$("#td_id").addClass('newClass');
Lub krótki sposób na zamianę klas za pomocą .toggleClass():
$("#td_id").toggleClass('change_me newClass');
Oto pełna lista metod jQuery specjalnie dla tego classatrybutu .
.closest('td')zamiast .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?- może źle to czytam, może ma na
<td>w pytaniu :)
change_meczęść jest opcjonalna, jeśli używasztoggleClass()
Myślę, że chce zastąpić nazwę klasy.
Coś takiego działałoby:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
od http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Możesz to zrobić:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
lub możesz to zrobić
$("#td_id").removeClass('Old_class').addClass('New_class');
Możesz sprawdzić addClass lub toggleClass
Więc chcesz to zmienić, kiedy kliknie ... pozwól mi przejść przez cały proces. Załóżmy, że „Zewnętrzny obiekt DOM” jest danymi wejściowymi, podobnie jak select:
Zacznijmy od tego 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>
Niektóre bardzo podstawowe CSS:
#theTable td {
border:1px solid #555;
}
.activeCell {
background-color:#F00;
}
I skonfiguruj zdarzenie jQuery:
function highlightCell(useVal){
$("#theTable td").removeClass("activeCell")
.filter(":contains('"+useVal+"')").addClass("activeCell");
}
$(document).ready(function(){
$("#test").change(function(e){highlightCell($(this).val())});
});
Teraz, za każdym razem, gdy wybierzesz coś z zaznaczenia, automatycznie znajdzie komórkę z pasującym tekstem, co pozwoli ci obalić cały proces oparty na identyfikatorze. Oczywiście, jeśli chcesz to zrobić w ten sposób, możesz łatwo zmodyfikować skrypt, aby używał identyfikatorów zamiast wartości, mówiąc
.filter("#"+useVal)
i upewnij się, że odpowiednio dodałeś identyfikatory. Mam nadzieję że to pomoże!
EDYTOWAĆ:
Jeśli mówisz, że zmieniasz go z elementu zagnieżdżonego , wcale nie potrzebujesz identyfikatora. Możesz to zrobić zamiast tego:
$(this).closest('td').toggleClass('change_me some_other_class');
//or
$(this).parents('td:first').toggleClass('change_me some_other_class');
Oryginalna odpowiedź:
$('#td_id').removeClass('change_me').addClass('some_other_class');
Inną opcją jest:
$('#td_id').toggleClass('change_me some_other_class');
<td>znajdowało się w środku , choć być może, przeczytaj je uważnie :)
ta metoda działa dobrze dla mnie
$('#td_id').attr('class','new class');
zmień klasę za pomocą jquery
Spróbuj tego
$('#selector_id').attr('class','new class');
możesz również ustawić dowolny atrybut za pomocą tego zapytania
$('#selector_id').attr('Attribute Name','Attribute Value');
Lepiej używam .prop do zmiany className i działało to idealnie:
$(#td_id).prop('className','newClass');
dla tego wiersza kodu wystarczy zmienić nazwę newClass i oczywiście identyfikator elementu, w następnym przykładzie: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
Nawiasem mówiąc, jeśli chcesz wyszukać, który styl jest zastosowany do dowolnego elementu, po prostu kliknij F12 w przeglądarce, gdy wyświetlana jest strona, a następnie wybierz w zakładce DOM Explorer element, który chcesz zobaczyć. W Stylach możesz teraz zobaczyć, jakie style są stosowane do elementu i z jakiej klasy jego czytanie.
var $td = $(this).parents('td:first')], a następnie pobiera jego identyfikator [var id = $td.attr('id');], a także klasę [var class = $td.attr('class');], ponieważ chce, aby element kliknięcia wewnątrz TD go uruchomił