Cara menghapus properti css di jQuery

197
if(prev_clicked)
{   
    $("#accordion li a.category").css('background-image', 'url("img/off_all_channel.png")');                    
    $("#accordion li a.comment").css('background-image', 'url("img/on_all_online.png")');                   
    $(".icha0").removeProperty("background-color");
    $(".icha0").removeProperty("opacity");
}
else
{   
   $(".icha0").css("background-color","#D5D5D2");
   $(".icha0").css("opacity","0.70");
}

Saya mencoba untuk menghapus dua properti css yang saya tambahkan tetapi tampaknya tidak berfungsi. Ada yang tahu?

SooIn Nam
sumber
1
Coba juga Google sebelum memposting di sini. Saya tidak ragu hasil pertama untuk judul persis yang Anda diposting di sini akan memberikan hasil yang dapat diterima. Saya tidak tahu dari mana Anda dapatkan .removeProperty().
Christian
1
@Christian Varga, whats funny is, sekarang dia telah memposting pertanyaan ini, ini ADALAH hasil google pertama. Hasil kedua adalah jawaban stack overflow yang benar. Ketiga adalah "removeProp ()" dan keempat adalah "removeAttr ()", keduanya salah.
Rocketsarefast

Jawaban:

369

Anda dapat menghapusnya dengan:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });
Nevin
sumber
26
Agak terlambat untuk menjawab tetapi saya pikir ini penting. Anda harus ingat bahwa ini hanya akan menghapus atribut elemen yang ditentukan dalam atribut "style". Ini TIDAK akan berpengaruh apa pun jika mereka ditugaskan ke kelas atau serupa.
José Carlos
15
Jika Anda perlu menghapus set properti melalui kelas, Anda dapat mengatur ke 'inital' bukan ''
James Brierley
82

Anda dapat menggunakan .css()untuk menghapus properti css juga, seperti ini:

$(".icha0").css("background-color","");
$(".icha0").css("opacity","");

Seperti disebutkan dalam dokumentasi jquery:

Menyetel nilai properti style ke string kosong - mis. $ ('# Mydiv'). Css ('color', '') - menghapus properti itu dari elemen jika sudah diterapkan langsung,

Mahmoud Gamal
sumber
16
Dari jqeury css: "Namun, itu tidak menghapus gaya yang telah diterapkan dengan aturan CSS dalam elemen stylesheet atau <style>"
eggmatters
36

Untuk menghapus penggunaan properti CSS sebaris:

$('.className').css({propertyName: ''});

Untuk menghapus seluruh gaya elemen sebaris gunakan:

$('.className').removeAttr('style');

Saya juga menemukan saran ini untuk menghapus properti CSS dari style (file terpisah) gunakan:

$ ('. className'). style.propertyName = '';

TETAPI saya tidak bisa membuatnya bekerja sama sekali, jadi saya meletakkannya di sini hanya FYI.

3Gee
sumber
4
$ ('. className'). style.propertyName = ''; harus $ ('. className') [0] .style.propertyName = ''; - tapi itu abolutly omong kosong
Supernova
20

Anda dapat menyetel properti kembali menjadi kosong:

$(".icha0").css("background-color","");

Atau Anda dapat mengubah kode untuk menggunakan kelas yang ditentukan dalam file CSS:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');
Jivings
sumber
Membantu menghilangkan tepi bergerigi karena perspektif 3d bersarang. Saya merasa frustrasi mencoba untuk menghapus salah satu perspektif untuk memperbaiki masalah anti alias, posting ini menyelamatkan hari saya! Terima kasih!
Richard Yan
3

Kami memiliki dua cara, baik Anda dapat langsung menghapus kelas gaya CSS yang diterapkan yang diterapkan pada elemen DOM atau menghapus gaya CSS yang diterapkan dari elemen

//Remove the class associated with element

$('#ID').removeClass("cssClass");

//Remove the CSS style from DOM element

$('p').css({"color":""});
Rajeev
sumber
3
Tidak ada yang baru dalam jawaban ini, tidak ada gunanya mengulangi jawaban lain.
Shadow Wizard adalah Ear For You
3

Saya mengalami masalah ini tetapi saya belum melihat solusi apa pun di sini yang memuaskan OP. Sebagian besar solusi menyarankan menyingkirkan seluruh atribut gaya yang tidak sepadan.

Saya menggunakan metode prop jQuery .

var styleObject = $('my-selector').prop('style'); 

styleObject.removeProperty('background-color');
NaxBuda
sumber
2

Pilihan alternatif yang kurang ideal, tetapi mungkin mengatasi berbagai masalah. Tambahkan kelas baru ke elemen dengan nilai inherit :

css

.clearCSS {
    background-color: inherit !important;
}

jquery

$(".icha0").addClass('clearCSS'); 
Andrew
sumber
2

Ini benar-benar merupakan copy paste dari jawaban ini , dan saya menggunakannya untuk menghapus gaya CSS yang saya tambahkan dengan jQuery dalam fungsi yang dieksekusi sebelumnya.

Untuk menghapus penggunaan properti CSS sebaris:

$('.className').css({propertyName: ''});   

Untuk menghapus seluruh gaya elemen sebaris gunakan:

$('.className').removeAttr('style');

ATAU dengan ID:

$('#idName').removeAttr('style');
Jortega
sumber
1

Untuk menghapus semua properti CSS di JQuery, kode berikut dapat digunakan:

    $(".selector").removeClass().removeAttr('style');

Terima kasih.

Kawsik Roy
sumber
1

jika Anda perlu menghapus dan tidak memperbarui properti tertentu, Anda cukup menggunakan removeProp dan tidak menghapusProperty :

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
Azzabi Haythem
sumber