Je change 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 couleurs (c'est-à-dire lorsque la souris se déplace sur une roue chromatique).
2ème note: je ne peux pas faire cela avec css("background-color", "none")
car cela supprimera le style par défaut des fichiers CSS .
Je veux juste supprimer le background-color
style en ligne ajouté par jQuery .
Réponses:
Changer la propriété en une chaîne vide semble faire le travail:
la source
La réponse acceptée fonctionne mais laisse un
style
attribut vide sur le DOM dans mes tests. Pas grave, mais cela supprime tout:Cela suppose que vous souhaitez supprimer tous les styles dynamiques et revenir au style de feuille de style.
la source
Il existe plusieurs façons de supprimer une propriété CSS à l'aide de jQuery:
1. Définir la propriété CSS à sa valeur par défaut (initiale)
Voir la valeur initiale de la propriété CSS sur MDN . Ici, la valeur par défaut est
transparent
. Vous pouvez également utiliserinherit
pour plusieurs propriétés CSS pour hériter l'attribut de son parent. Dans CSS3 / CSS4, vous pouvez également utiliserinitial
,revert
ouunset
mais ces mots clés peuvent avoir une prise en charge limitée du navigateur.2. Suppression de la propriété CSS
Une chaîne vide supprime la propriété CSS, c'est-à-dire
Mais attention, comme spécifié dans la documentation jQuery .css () , cela supprime la propriété mais il a des problèmes de compatibilité avec IE8 pour certaines propriétés abrégées CSS, y compris l' arrière-plan .
3. Suppression de tout le style de l'élément
la source
J'ai obtenu le moyen de supprimer un attribut de style avec du JavaScript pur juste pour vous faire savoir le chemin du JavaScript pur
la source
Cela supprimera la balise complète:
la source
l'une ou l'autre de ces fonctions jQuery devrait fonctionner:
la source
var cssObject = $('selector').prop('style'); cssObject.removeProperty('background-color');
En utilisant simplement:
ou
la source
Que diriez-vous de quelque chose comme:
la source
Utilisez mon plugin:
Pour votre cas, utilisez-le comme suit:
ou
si vous souhaitez supprimer également le CSS défini dans ses classes:
la source
$(this).removeAttr
est redondant etthis.removeAttr
devrait suffire.removeAttr
ce que supprimer aussiclass
attr? je ne pense pasremoveAttr
intérieur de votre plugin, où sethis
trouve déjà un élément jQuery.$(this)
est redondant.this
commeHTMLElement
exemple l'élément mis en correspondance avec jQuery ... Comme vous le voyez, ma réponse est vieux ... c'est pourquoi .. De toute façon, je peux dire u pourquoi ils changent, ils le font en raison de la fonction flèche qui est nouvelle dans ES6. .. etthis
devient inutile et il a été remplacé parevent.currentTarget
Essaye ça:
Merci
la source
Si vous utilisez le style CSS, vous pouvez utiliser:
puis remplacez par:
Si vous n'utilisez pas le style CSS et que vous avez un attribut dans l'élément HTML, vous pouvez utiliser:
la source
2018
il y a une API native pour cela
la source
Celui-ci fonctionne également !!
la source
Pourquoi ne pas faire le style que vous souhaitez supprimer une classe CSS? Maintenant , vous pouvez utiliser:
.removeClass()
. Cela ouvre également la possibilité d'utiliser:.toggleClass()
(supprimez la classe si elle est présente et ajoutez-la dans le cas contraire.)
Ajouter / supprimer une classe est également moins déroutant pour changer / dépanner lorsqu'il s'agit de problèmes de mise en page (par opposition à essayer de comprendre pourquoi un style particulier a disparu.)
la source
la source
C'est plus complexe que certaines autres solutions, mais peut offrir plus de flexibilité dans les scénarios:
1) Faites une définition de classe pour isoler (encapsuler) le style que vous souhaitez appliquer / supprimer de manière sélective. Il peut être vide (et dans ce cas, devrait probablement l'être):
2) utilisez ce code, basé sur http://jsfiddle.net/kdp5V/167/ de cette réponse de gilly3 :
Exemple d'utilisation: http://jsfiddle.net/qvkwhtow/
Mises en garde:
Isoler le style de cette façon est ce qu'est le CSS, même si ce n'est pas le cas. La manipulation des règles CSS n'est PAS la raison d'être de jQuery, jQuery manipule les éléments DOM et utilise des sélecteurs CSS pour le faire.
la source
Le simple est bon marché dans le développement web. Je recommande d'utiliser une chaîne vide lors de la suppression d'un style particulier
la source
Essaye ça
la source