Pertanyaan Bagaimana cara membatalkan atribut CSS elemen menggunakan jQuery?


Jika saya menetapkan nilai CSS pada elemen tertentu menggunakan:

$('#element').css('background-color', '#ccc');

Saya ingin dapat membatalkan nilai spesifik-elemen tersebut dan menggunakan nilai yang mengalir, di sepanjang garis:

$('#element').css('background-color', null);

Tetapi sintaks itu tampaknya tidak berfungsi - apakah ini mungkin menggunakan sintaks yang lain?

Terima kasih sebelumnya!

Edit: Nilai tidak diwarisi dari elemen induk - nilai asli berasal dari pemilih tingkat elemen. Maaf atas kebingungan!


76
2018-01-29 08:41


asal


Jawaban:


Dari jQuery docs:

Menetapkan nilai properti gaya ke string kosong - mis. $('#mydiv').css('color', '') - menghapus properti itu dari suatu elemen jika telah diterapkan secara langsung, baik dalam atribut gaya HTML, melalui jQuery .css() metode, atau melalui manipulasi DOM langsung dari style milik. Itu tidak, bagaimanapun, menghapus gaya yang telah diterapkan dengan aturan CSS di stylesheet atau <style> elemen.


109
2018-02-24 00:54



Saya pikir Anda juga bisa melakukan:

$('#element').css('background-color', '');

Itulah yang saya kerjakan sejak lama untuk display properti di javascript biasa untuk menampilkan / menyembunyikan bidang.


11
2018-01-29 09:27



Sebenarnya, sintaks yang saya pikir tidak benar (dengan null) tampaknya berfungsi - pemilih saya tidak terbentuk dengan benar, dan dengan demikian tidak menghasilkan elemen. Duh!


4
2018-01-29 09:18



Coba ini:

$('#element').css('background-color', 'inherit');

3
2018-01-29 08:51



Untuk apa nilainya ini tampaknya tidak berfungsi di IE 8 untuk 'filter,' saya harus menggunakan ini (di fadeIn callback):

$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));

Tentunya, saya harus menghapus deklarasi inline filter kosong sehingga CSS bisa berpengaruh; ada aturan inline lainnya sehingga saya tidak bisa begitu saja menghapus atribut style.


0
2017-11-05 15:59