Saya mengubah CSS dengan jQuery dan saya ingin menghapus gaya yang saya tambahkan berdasarkan nilai input:
if(color != '000000') $("body").css("background-color", color); else // remove style ?
Bagaimana saya bisa melakukan ini?
Perhatikan bahwa garis di atas berjalan setiap kali warna dipilih menggunakan color picker (mis. Ketika mouse bergerak di atas roda warna).
Catatan kedua: Saya tidak bisa melakukan ini dengan css("background-color", "none")
karena itu akan menghapus styling default dari file CSS .
Saya hanya ingin menghapus background-color
gaya sebaris yang ditambahkan oleh jQuery .
javascript
jquery
css
background
Alex
sumber
sumber
Jawaban:
Mengubah properti ke string kosong tampaknya melakukan pekerjaan:
sumber
Jawaban yang diterima berfungsi tetapi meninggalkan
style
atribut kosong pada DOM dalam pengujian saya. Bukan masalah besar, tetapi ini menghapus semuanya:Ini mengasumsikan Anda ingin menghapus semua styling dinamis dan kembali ke styling stylesheet.
sumber
Ada beberapa cara untuk menghapus properti CSS menggunakan jQuery:
1. Mengatur properti CSS ke nilai default (awal)
Lihat nilai awal untuk properti CSS di MDN . Di sini nilai standarnya
transparent
. Anda juga dapat menggunakaninherit
beberapa properti CSS untuk mewarisi atribut dari induknya. Di CSS3 / CSS4, Anda juga dapat menggunakaninitial
,revert
atauunset
tetapi kata kunci ini mungkin memiliki dukungan browser yang terbatas.2. Menghapus properti CSS
String kosong menghapus properti CSS, yaitu
Namun berhati-hatilah, seperti yang ditentukan dalam dokumentasi jQuery .css () , ini menghapus properti tetapi memiliki masalah kompatibilitas dengan IE8 untuk properti steno CSS tertentu, termasuk latar belakang .
3. Menghapus seluruh gaya elemen
sumber
Saya punya cara untuk menghapus atribut gaya dengan JavaScript murni hanya agar Anda tahu cara JavaScript murni
sumber
Ini akan menghapus tag lengkap:
sumber
salah satu dari fungsi jQuery ini harus berfungsi:
sumber
var cssObject = $('selector').prop('style'); cssObject.removeProperty('background-color');
Hanya menggunakan:
atau
sumber
Bagaimana dengan sesuatu seperti:
sumber
Gunakan Plugin saya:
Untuk kasus Anda, Gunakan sebagai berikut:
atau
jika Anda ingin menghapus juga CSS yang ditentukan di kelasnya:
sumber
$(this).removeAttr
berlebihan danthis.removeAttr
harus cukup.removeAttr
akan menghapus jugaclass
attr? Saya rasa tidakremoveAttr
dalam plugin Anda, di manathis
sudah ada elemen jQuery.$(this)
berlebihan.this
sebagaiHTMLElement
contoh dipetakan ke elemen jQuery ... Seperti yang Anda lihat, jawaban saya sudah tua ... itu sebabnya .. pokoknya, saya bisa memberi tahu Anda mengapa mereka mengubahnya, mereka melakukan itu karena fungsi panah yang muncul baru di ES6. .. danthis
menjadi tidak berguna dan digantikan olehevent.currentTarget
Coba ini:
Terima kasih
sumber
Jika Anda menggunakan gaya CSS, Anda dapat menggunakan:
lalu ganti dengan:
Jika Anda tidak menggunakan gaya CSS dan memiliki atribut dalam elemen HTML, Anda dapat menggunakan:
sumber
2018
ada API asli untuk itu
sumber
Yang ini juga berfungsi !!
sumber
Mengapa tidak membuat gaya yang ingin Anda hapus dari kelas CSS? Sekarang Anda dapat menggunakan:
.removeClass()
. Ini juga membuka kemungkinan menggunakan:.toggleClass()
(hapus kelas jika ada, dan tambahkan jika tidak.)
Menambah / menghapus kelas juga kurang membingungkan untuk diubah / dipecahkan ketika berhadapan dengan masalah tata letak (sebagai lawan mencoba mencari tahu mengapa gaya tertentu menghilang.)
sumber
sumber
Ini lebih kompleks daripada beberapa solusi lain, tetapi mungkin menawarkan lebih banyak fleksibilitas dalam skenario:
1) Buat definisi kelas untuk mengisolasi (merangkum) gaya yang ingin Anda terapkan / hapus secara selektif. Itu bisa kosong (dan untuk kasus ini, mungkin harus):
2) gunakan kode ini, berdasarkan http://jsfiddle.net/kdp5V/167/ dari jawaban ini oleh gilly3 :
Contoh penggunaan: http://jsfiddle.net/qvkwhtow/
Peringatan:
Mengisolasi gaya dengan cara ini adalah tentang apa itu CSS, bahkan jika memanipulasi bukan. Memanipulasi aturan CSS BUKAN tentang jQuery, jQuery memanipulasi elemen DOM, dan menggunakan penyeleksi CSS untuk melakukannya.
sumber
Sederhana murah dalam pengembangan web. Saya sarankan menggunakan string kosong saat menghapus gaya tertentu
sumber
Coba ini
sumber