Come rimuovere la proprietà CSS in 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");
}

Sto cercando di rimuovere due proprietà CSS che ho aggiunto ma sembra non funzionare. Comunque?


1
Inoltre, prova Google prima di pubblicare qui. Non ho dubbi che il primo risultato per il titolo esatto che hai pubblicato qui restituirebbe un risultato accettabile. Non ho idea da dove vieni .removeProperty().
Christian,

1
@Christian Varga, com'è divertente, ora che ha pubblicato questa domanda, è il primo risultato di google. Il secondo risultato è un'altra risposta di overflow dello stack corretta. Il terzo è "removeProp ()" e il quarto è "removeAttr ()", entrambi sono sbagliati.
rocketsarefast,

Risposte:


369

Puoi rimuoverli come segue:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });

26
È troppo tardi per rispondere, ma penso che sia importante. È necessario tenere presente che ciò rimuoverà solo gli attributi dell'elemento definiti nell'attributo "stile". Questo NON avrà alcun effetto se sono assegnati a una classe o simile.
José Carlos,

15
Se è necessario rimuovere un insieme di proprietà tramite una classe, è possibile impostare su "iniziale" anziché ""
James Brierley,

82

Puoi usare anche .css()per rimuovere la proprietà css, in questo modo:

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

Come menzionato nella documentazione jquery:

Impostando il valore di una proprietà di stile su una stringa vuota, ad esempio $ ('# mydiv'). Css ('color', '') - rimuove quella proprietà da un elemento se è già stata applicata direttamente,


16
Da jqeury css: "Tuttavia, non rimuove uno stile che è stato applicato con una regola CSS in un foglio di stile o elemento <style>"
eggmatters,

37

Per rimuovere la proprietà CSS in linea utilizzare:

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

Per rimuovere l'intero stile in linea di un elemento usare:

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

Ho anche trovato questo suggerimento per rimuovere la proprietà CSS dall'uso degli stili (file separato):

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

MA non sono riuscito a farlo funzionare affatto, quindi lo sto mettendo qui solo FYI.


4
$ ('. className'). style.propertyName = ''; deve essere $ ('. className') [0] .style.propertyName = ''; - ma è assolutamente un'assurdità
SuperNova

20

Puoi ripristinare le proprietà in bianco:

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

Oppure puoi modificare il codice per utilizzare le classi definite in un file CSS:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');

Aiuta a rimuovere i bordi frastagliati a causa di prospettive 3d nidificate. Ero frustrato nel cercare di rimuovere una delle prospettive per risolvere il problema dell'anti alias, questo post mi ha salvato la giornata! Grazie!
Richard Yan,

4

Stavo avendo questo problema ma non ho visto nessuna soluzione che soddisfi il PO. La maggior parte delle soluzioni suggerisce di sbarazzarsi dell'intero attributo di stile che non ne vale la pena.

Ho usato il metodo prop di jQuery .

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

styleObject.removeProperty('background-color');

3

Abbiamo due modi: o puoi rimuovere direttamente la classe di stile CSS applicata che viene applicata all'elemento DOM o rimuovere lo stile CSS applicato dall'elemento

//Remove the class associated with element

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

//Remove the CSS style from DOM element

$('p').css({"color":""});

3
Non c'è nulla di nuovo in questa risposta, è inutile ripetere altre risposte.
Shadow Wizard è Ear For You,

2

Alternare meno dell'opzione ideale, ma potrebbe aggirare vari problemi. Aggiungi una nuova classe all'elemento con valore eredita :

css

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

jquery

$(".icha0").addClass('clearCSS'); 

2

Questa è letteralmente una copia incolla da questa risposta , e la uso per cancellare lo stile CSS che ho aggiunto con jQuery in una funzione precedentemente eseguita.

Per rimuovere la proprietà CSS in linea utilizzare:

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

Per rimuovere l'intero stile in linea di un elemento usare:

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

O per ID:

$('#idName').removeAttr('style');

1

Per rimuovere tutta la proprietà CSS in JQuery è possibile utilizzare il seguente codice:

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

Grazie.


1

se devi rimuovere e non aggiornare una proprietà specifica puoi semplicemente usare removeProp e non removeProperty :

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.