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?

SooIn Nam
quelle
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' : '' });
Nevin
quelle
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.

Mahmoud Gamal
quelle
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.

3Gee
quelle
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');
Jivings
quelle
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":""});
Rajeev
quelle
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');
NaxBuda
quelle
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'); 
Andrew
quelle
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');
Jortega
quelle
1

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

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

Vielen Dank.

Kawsik Roy
quelle
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");
Azzabi Haythem
quelle