So entfernen Sie die CSS-Eigenschaft 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");
}

Ich versuche, zwei CSS-Eigenschaften zu entfernen, die ich hinzugefügt habe, aber es scheint nicht zu funktionieren. Aber was?


1
Versuchen Sie es auch mit Google, bevor Sie hier posten. Ich habe keinen Zweifel, dass das erste Ergebnis für den genauen Titel, den Sie hier gepostet haben, ein akzeptables Ergebnis liefern würde. Ich habe keine Ahnung, woher du kommst .removeProperty().
Christian

1
@Christian Varga, was lustig ist, jetzt, wo er diese Frage gestellt hat, ist es das erste Google-Ergebnis. Das zweite Ergebnis ist eine weitere richtige Antwort auf den Stapelüberlauf. Der dritte ist "removeProp ()" und der vierte ist "removeAttr ()", beide sind falsch.
Raketen sind schnell

Antworten:


369

Sie können sie entfernen durch:

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

26
Es ist etwas zu spät, um zu antworten, aber ich denke, das ist wichtig. Beachten Sie, dass dadurch nur die im Attribut "style" definierten Attribute des Elements entfernt werden. Dies hat KEINE Auswirkung, wenn sie einer Klasse oder ähnlichem zugeordnet sind.
José Carlos

15
Wenn Sie einen Eigenschaftssatz über eine Klasse entfernen müssen, können Sie ihn auf 'inital' anstatt auf '' setzen
James Brierley

82

Sie können .css()damit auch die CSS-Eigenschaft wie folgt entfernen:

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

Wie in der jquery-Dokumentation erwähnt:

Durch Festlegen des Werts einer Stileigenschaft auf eine leere Zeichenfolge - z. B. $ ('# mydiv'). Css ('color', '') - wird diese Eigenschaft aus einem Element entfernt, wenn sie bereits direkt angewendet wurde.


16
Aus jqeury css: "Es wird jedoch kein Stil entfernt, der mit einer CSS-Regel in einem Stylesheet oder <style> -Element
angewendet wurde

36

So entfernen Sie die Inline-CSS-Eigenschaft:

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

Um den gesamten Inline-Stil eines Elements zu entfernen, verwenden Sie:

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

Ich habe auch diesen Vorschlag gefunden, um die CSS-Eigenschaft aus Stilen (separate Datei) zu entfernen:

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

ABER ich konnte es überhaupt nicht zum Laufen bringen, also stelle ich es hier nur zu Ihrer Information.


4
$ ('. className'). style.propertyName = ''; muss $ ('. className') [0] sein .style.propertyName = ''; - aber es ist absolut Unsinn
SuperNova

20

Entweder können Sie die Eigenschaften wieder auf leer setzen:

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

Sie können den Code auch so ändern, dass in einer CSS-Datei definierte Klassen verwendet werden:

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

Hat geholfen, gezackte Kanten aufgrund verschachtelter 3D-Perspektiven zu entfernen. Ich war frustriert, als ich versuchte, eine der Perspektiven zu entfernen, um das Anti-Alias-Problem zu beheben. Dieser Beitrag hat mir den Tag gerettet! Danke dir!
Richard Yan

3

Wir haben zwei Möglichkeiten: Entweder können Sie die angewendete CSS-Stilklasse, die auf das DOM-Element angewendet wird, direkt entfernen oder den angewendeten CSS-Stil aus dem Element entfernen

//Remove the class associated with element

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

//Remove the CSS style from DOM element

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

3
Diese Antwort enthält nichts Neues. Es ist sinnlos, andere Antworten zu wiederholen.
Schatten-Assistent ist Ohr für Sie

3

Ich hatte dieses Problem, aber ich habe hier keine Lösung gesehen, die das OP zufriedenstellt. Die meisten Lösungen schlagen vor, das gesamte Stilattribut zu entfernen, was sich nicht lohnt.

Ich habe die Requisitenmethode von jQuery verwendet.

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

styleObject.removeProperty('background-color');

2

Alternative weniger als ideale Option, kann aber verschiedene Probleme umgehen. Fügen Sie dem Element eine neue Klasse mit dem Wert erben hinzu :

CSS

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

jquery

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

2

Dies ist buchstäblich ein Kopieren und Einfügen aus dieser Antwort , und ich verwende es, um den CSS-Stil zu löschen, den ich mit jQuery in einer zuvor ausgeführten Funktion hinzugefügt habe.

So entfernen Sie die Inline-CSS-Eigenschaft:

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

Um den gesamten Inline-Stil eines Elements zu entfernen, verwenden Sie:

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

ODER nach ID:

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

1

Um alle CSS-Eigenschaften in JQuery zu entfernen, kann der folgende Code verwendet werden:

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

Vielen Dank.


1

Wenn Sie eine bestimmte Eigenschaft entfernen und nicht aktualisieren müssen, können Sie einfach removeProp und nicht removeProperty verwenden :

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.