Question Comment puis-je supprimer un style ajouté avec la fonction .css ()?


Je change de CSS avec jQuery et je souhaite supprimer le style que j'ajoute en fonction de la valeur d'entrée:

if(color != '000000') $("body").css("background-color", color); else // remove style ?

Comment puis-je faire ceci? Notez que la ligne ci-dessus s'exécute chaque fois qu'une couleur est sélectionnée à l'aide d'un sélecteur de couleur (c'est-à-dire lorsque la souris passe sur une roue chromatique).

2ème note: je ne peux pas faire ça avec css("background-color", "none") car il supprimera le style par défaut des fichiers CSS. Je veux juste enlever le background-color le style en ligne ajouté par jQuery.


730
2017-10-27 19:21


origine


Réponses:


Changer la propriété en une chaîne vide semble faire le travail.

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


1152
2017-10-27 19:22



La réponse acceptée fonctionne mais laisse vide style attribut sur le DOM dans mes tests. Pas grave, mais cela supprime tout:

removeAttr( 'style' );

Cela suppose que vous souhaitez supprimer tout style dynamique et revenir au style de feuille de style.


491
2017-10-10 04:09



Il existe plusieurs façons de supprimer une propriété CSS à l'aide de jQuery:

1. Définition de la propriété CSS à sa valeur (initiale) par défaut

.css("background-color", "transparent")

Voir le valeur initiale pour la propriété CSS à MDN. Ici, la valeur par défaut est transparent. Vous pouvez aussi utiliser inherit pour que plusieurs propriétés CSS héritent de l'attribut de son parent. En CSS3 / CSS4, vous pouvez également utiliser initial, revert ou unset mais ces mots clés peuvent avoir un support de navigateur limité.

2. Suppression de la propriété CSS

Une chaîne vide supprime la propriété CSS, c'est-à-dire

.css("background-color","")

Mais méfiez-vous, comme spécifié dans Documentation jQuery .css (), cela supprime la propriété, mais il a des problèmes de compatibilité avec IE8 pour certaines propriétés sténographiques CSS, y compris Contexte.

Définir la valeur d'une propriété de style sur une chaîne vide - par ex.   $ ('# mydiv'). css ('color', '') - supprime cette propriété d'un élément   si elle a déjà été directement appliquée, que ce soit dans le style HTML   attribut, via la méthode .css () de jQuery, ou via DOM direct   manipulation de la propriété de style. Cependant, il ne supprime pas   style qui a été appliqué avec une règle CSS dans une feuille de style ou   élément. Attention: une exception notable est que, pour IE 8 et ci-dessous,   enlever une propriété raccourcie comme la frontière ou arrière-plan sera   supprimer complètement ce style de l'élément, indépendamment de ce qui est défini   dans une feuille de style ou un élément.

3. Suppression du style entier de l'élément

.removeAttr("style")

155
2018-05-09 13:25



J'ai eu le moyen de supprimer un attribut de style avec JavaScript pur juste pour vous faire connaître la façon de JavaScript pur

var bodyStyle = document.body.style;
if (bodyStyle.removeAttribute)
    bodyStyle.removeAttribute('background-color');
else        
    bodyStyle.removeProperty('background-color');

40
2017-11-15 09:40



l'une de ces fonctions jQuery devrait fonctionner:

$("#element").removeAttr("style");
$("#element").removeAttr("background-color") 

15
2017-08-28 13:42



Cela supprimera la balise complète:

  $("body").removeAttr("style");

13
2017-12-01 15:00



Juste en utilisant:

$('.tag-class').removeAttr('style');

ou

$('#tag-id').removeAttr('style');

6
2017-12-01 14:45



Que diriez-vous de quelque chose comme:

var myCss = $(element).attr('css');
myCss = myCss.replace('background-color: '+$(element).css('background-color')+';', '');
if(myCss == '') {
  $(element).removeAttr('css');
} else {
  $(element).attr('css', myCss);
}

5
2017-11-27 16:11



Essaye ça:

$('#divID').css({"background":"none"});// remove existing

$('#divID').css({"background":"#bada55"});// add new color here.

Merci


5
2018-01-08 07:14