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?


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' : '' });

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,


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.


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');

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":""});

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');

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'); 

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');

1

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

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

Merci.


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");
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.