Jawaban:
Anda dapat mengatur kelas (terlepas dari apa itu ) dengan menggunakan .attr()
, seperti ini:
$("#td_id").attr('class', 'newClass');
Jika Anda ingin menambahkan kelas, gunakan .addclass()
, seperti ini:
$("#td_id").addClass('newClass');
Atau cara singkat untuk bertukar kelas menggunakan .toggleClass()
:
$("#td_id").toggleClass('change_me newClass');
Berikut daftar lengkap metode jQuery khusus untuk class
atribut .
.closest('td')
bukan .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?
- mungkin aku salah membaca, mungkin dia bermaksud menggunakan id td untuk mengubah kelas ...
<td>
dalam pertanyaan :)
change_me
bagian ini opsional jika Anda menggunakantoggleClass()
Saya pikir dia ingin mengganti nama kelas.
Sesuatu seperti ini akan berhasil:
$(document).ready(function(){
$('.blue').removeClass('blue').addClass('green');
});
dari http://monstertut.com/2012/06/use-jquery-to-change-css-class/
Anda dapat melakukan ini:
$("#td_id").removeClass('Old_class');
$("#td_id").addClass('New_class');
Atau Anda dapat melakukan ini
$("#td_id").removeClass('Old_class').addClass('New_class');
Anda dapat memeriksa addClass atau toggleClass
Jadi Anda ingin mengubahnya KETIKA itu diklik ... biarkan saya pergi melalui seluruh proses. Mari kita asumsikan bahwa "Objek DOM Eksternal" Anda adalah input, seperti pilih:
Mari kita mulai dengan HTML ini:
<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>
Beberapa CSS yang sangat mendasar:
#theTable td {
border:1px solid #555;
}
.activeCell {
background-color:#F00;
}
Dan mengatur acara jQuery:
function highlightCell(useVal){
$("#theTable td").removeClass("activeCell")
.filter(":contains('"+useVal+"')").addClass("activeCell");
}
$(document).ready(function(){
$("#test").change(function(e){highlightCell($(this).val())});
});
Sekarang, setiap kali Anda memilih sesuatu dari pilih, itu akan secara otomatis menemukan sel dengan teks yang cocok, memungkinkan Anda untuk menumbangkan seluruh proses berbasis id. Tentu saja, jika Anda ingin melakukannya dengan cara itu, Anda dapat dengan mudah memodifikasi skrip untuk menggunakan ID daripada nilai dengan mengatakan
.filter("#"+useVal)
dan pastikan untuk menambahkan id dengan tepat. Semoga ini membantu!
EDIT:
Jika Anda mengatakan bahwa Anda mengubahnya dari elemen bersarang , Anda tidak memerlukan ID sama sekali. Anda bisa melakukan ini sebagai gantinya:
$(this).closest('td').toggleClass('change_me some_other_class');
//or
$(this).parents('td:first').toggleClass('change_me some_other_class');
Jawaban asli:
$('#td_id').removeClass('change_me').addClass('some_other_class');
Pilihan lain adalah:
$('#td_id').toggleClass('change_me some_other_class');
<td>
, meskipun dia mungkin, baca kembali dengan hati-hati :)
metode ini bekerja dengan baik untuk saya
$('#td_id').attr('class','new class');
ganti kelas menggunakan jquery
coba ini
$('#selector_id').attr('class','new class');
Anda juga dapat mengatur atribut apa pun menggunakan kueri ini
$('#selector_id').attr('Attribute Name','Attribute Value');
Saya lebih baik menggunakan .prop untuk mengubah className dan itu bekerja dengan sempurna:
$(#td_id).prop('className','newClass');
untuk baris kode ini Anda hanya perlu mengubah nama newClass, dan tentu saja id elemen, dalam contoh berikut: idelementinyourpage
$(#idelementinyourpage).prop('className','newClass');
Ngomong-ngomong, ketika Anda ingin mencari gaya mana yang diterapkan pada elemen apa pun, Anda cukup mengklik F12 di browser Anda ketika halaman Anda ditampilkan, dan kemudian pilih di tab DOM Explorer, elemen yang ingin Anda lihat. Dalam Styles Anda sekarang dapat melihat gaya apa yang diterapkan pada elemen Anda dan dari kelas mana bacaannya.
var $td = $(this).parents('td:first')
] lalu dapatkan idnya [var id = $td.attr('id');
] dan juga kelas [var class = $td.attr('class');
] karena ia ingin elemen klik di dalam TD untuk memicunya