Yanıtlar:
Şunları yapabilirsiniz set (olursa olsun ne sınıfını oldu kullanarak) .attr()
bu gibi:
$("#td_id").attr('class', 'newClass');
Bir sınıf eklemek istiyorsanız .addclass()
bunun yerine şunu kullanın :
$("#td_id").addClass('newClass');
Veya sınıfları kullanarak .toggleClass()
şunları değiştirmenin kısa bir yolu :
$("#td_id").toggleClass('change_me newClass');
İşte class
özellikle öznitelik için jQuery yöntemlerinin tam listesi .
.closest('td')
yerine kullanabileceğiniz bir ebeveyn almak için .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?
- belki yanlış okuyorum, belki o sınıf değiştirmek için td kimliğini kullanmak anlamına gelir ...
<td>
:)
change_me
bölümü kullanırsanız isteğe bağlıdırtoggleClass()
Bence bir sınıf adını değiştirmek istiyor.
Bunun gibi bir şey işe yarayacaktır:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
dan http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Bunu yapabilirsiniz:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
Veya bunu yapabilirsiniz
$("#td_id").removeClass('Old_class').addClass('New_class');
AddClass veya toggleClass'a göz atabilirsiniz
Yani tıklatıldığında değiştirmek istersiniz ... tüm süreçten geçmeme izin verin. "Harici DOM Nesneniz" in bir seçim gibi bir girdi olduğunu varsayalım:
Bu HTML ile başlayalım:
<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>
Bazı çok temel CSS'ler:
#theTable td {
border:1px solid #555;
}
.activeCell {
background-color:#F00;
}
Ve bir jQuery etkinliği ayarlayın:
function highlightCell(useVal){
$("#theTable td").removeClass("activeCell")
.filter(":contains('"+useVal+"')").addClass("activeCell");
}
$(document).ready(function(){
$("#test").change(function(e){highlightCell($(this).val())});
});
Şimdi, seçimden bir şey seçtiğinizde, otomatik olarak eşleşen metne sahip bir hücre bulur ve tüm kimlik tabanlı işlemi bozmanıza olanak tanır. Tabii ki, bu şekilde yapmak istiyorsanız, komut dosyasını değerleri değil kimlik kullanmak için kolayca değiştirebilirsiniz.
.filter("#"+useVal)
ve kimlikleri uygun şekilde eklediğinizden emin olun. Bu yardımcı olur umarım!
DÜZENLE:
İç içe bir öğeden değiştirdiğinizi söylüyorsanız , kimliğe ihtiyacınız yoktur. Bunun yerine şunları yapabilirsiniz:
$(this).closest('td').toggleClass('change_me some_other_class');
//or
$(this).parents('td:first').toggleClass('change_me some_other_class');
Orijinal cevap:
$('#td_id').removeClass('change_me').addClass('some_other_class');
Başka bir seçenek:
$('#td_id').toggleClass('change_me some_other_class');
<td>
olmasına rağmen, o dikkatle tekrar okuyun :) sanmıyorum
bu yöntem benim için iyi çalışıyor
$('#td_id').attr('class','new class');
Daha iyi className değiştirmek için .prop kullanın ve mükemmel çalıştı:
$(#td_id).prop('className','newClass');
bu kod satırı için newClass'ın adını ve elbette öğenin kimliğini bir sonraki örnekte değiştirmeniz gerekir: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
Bu arada, herhangi bir öğeye hangi stilin uygulandığını aramak istediğinizde, sayfanız gösterildiğinde tarayıcınızda F12'yi tıklamanız ve ardından görmek istediğiniz öğe olan DOM Explorer sekmesinden seçmeniz yeterlidir. Stiller'de artık öğenize hangi stillerin uygulandığını ve hangi sınıftan okuduğunu görebilirsiniz.
var $td = $(this).parents('td:first')
] bulan kimliği [var id = $td.attr('id');
] ve ayrıca sınıfı [var class = $td.attr('class');
] bulan bir olay işleyicisi ekleyin çünkü TD içinde bir tıklama öğesinin tetiklemesi istiyor