Comment supprimer la propriété CSS dans 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");
}

J'essaie de supprimer deux propriétés CSS que j'ai ajoutées, mais cela ne semble pas fonctionner. Mais quoi?

SooIn Nam
la source
1
Essayez également Google avant de publier ici. Je n'ai aucun doute que le premier résultat pour le titre exact que vous avez affiché ici retournerait un résultat acceptable. Je ne sais pas d'où tu viens .removeProperty().
Christian
1
@Christian Varga, ce qui est drôle, maintenant qu'il a posté cette question, c'est le premier résultat google. Le deuxième résultat est une autre réponse correcte de dépassement de pile. Troisième est "removeProp ()" et quatrième est "removeAttr ()", les deux sont faux.
rocketsarefast

Réponses:

369

Vous pouvez les supprimer en:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });
Nevin
la source
26
Il est un peu tard pour répondre, mais je pense que c'est important. Vous devez garder à l'esprit que cela ne supprimera que les attributs de l'élément définis dans l'attribut "style". Cela n'aura aucun effet s'ils sont affectés à une classe ou similaire.
José Carlos
15
Si vous devez supprimer un ensemble de propriétés via une classe, vous pouvez définir "inital" au lieu de ""
James Brierley
82

Vous pouvez également utiliser .css()pour supprimer la propriété css, comme ceci:

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

Comme mentionné dans la documentation jquery:

Définir la valeur d'une propriété de style sur une chaîne vide - par exemple $ ('# mydiv'). Css ('color', '') - supprime cette propriété d'un élément si elle a déjà été directement appliquée,

Mahmoud Gamal
la source
16
De jqeury css: "Il ne supprime cependant pas un style qui a été appliqué avec une règle CSS dans une feuille de style ou un élément <style>"
eggmatters
36

Pour supprimer la propriété CSS en ligne, utilisez:

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

Pour supprimer tout le style en ligne d'un élément, utilisez:

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

J'ai également trouvé cette suggestion pour supprimer la propriété CSS des styles (fichier séparé):

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

MAIS je ne pouvais pas du tout le faire fonctionner, donc je le mets ici juste pour info.

3Gee
la source
4
$ ('. className'). style.propertyName = ''; doit être $ ('. className') [0] .style.propertyName = ''; - mais c'est complètement absurde
SuperNova
20

Soit vous pouvez redéfinir les propriétés sur vide:

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

Ou vous pouvez changer le code pour utiliser des classes définies dans un fichier CSS:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');
Jivings
la source
A aidé à supprimer les bords irréguliers en raison des perspectives 3D imbriquées. J'étais frustré d'essayer de supprimer l'une des perspectives afin de résoudre le problème d'anti-alias, ce message m'a sauvé la journée! Je vous remercie!
Richard Yan
3

Nous avons deux façons, soit de supprimer directement la classe de style CSS appliquée qui est appliquée à l'élément DOM, soit de supprimer le style CSS appliqué de l'élément

//Remove the class associated with element

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

//Remove the CSS style from DOM element

$('p').css({"color":""});
Rajeev
la source
3
Il n'y a rien de nouveau dans cette réponse, il est inutile de répéter d'autres réponses.
Shadow Wizard est Ear For You
3

J'avais ce problème mais je n'ai vu aucune solution satisfaisant au PO. La plupart des solutions suggèrent de se débarrasser de l'attribut style entier qui n'en vaut pas la peine.

J'ai utilisé la méthode prop de jQuery .

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

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

Alterner l'option moins qu'idéale, mais peut contourner divers problèmes. Ajoutez une nouvelle classe à l'élément avec une valeur héritée :

css

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

jquery

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

C'est littéralement un copier-coller de cette réponse , et je l'utilise pour effacer le style CSS que j'ai ajouté avec jQuery dans une fonction précédemment exécutée.

Pour supprimer la propriété CSS en ligne, utilisez:

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

Pour supprimer tout le style en ligne d'un élément, utilisez:

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

OU par ID:

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

Pour supprimer toutes les propriétés CSS dans JQuery, le code suivant peut être utilisé:

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

Merci.

Kawsik Roy
la source
1

si vous devez supprimer et ne pas mettre à jour une propriété spécifique, vous pouvez simplement utiliser removeProp et non removeProperty :

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