Un plugin jQuery applique un style en ligne ( display:block
). Je me sens paresseux et je veux le remplacer par display:none
.
Quel est le meilleur moyen (paresseux)?
Un plugin jQuery applique un style en ligne ( display:block
). Je me sens paresseux et je veux le remplacer par display:none
.
Quel est le meilleur moyen (paresseux)?
Mise à jour: même si cette solution fonctionne, il y a de plus facile. Voir ci-dessous.
Voici ce que j'ai trouvé, et j'espère que cela est utile à vous ou quelqu'un d'autre:
$('#element').attr('style', function(i, style)
{
return style.replace(/display[^;]+;?/g, '');
});
Cela permettra d'éliminer que de style en ligne.
Je ne suis pas sûr que c'est ce que tu voulais. Vous avez voulu le remplacer, qui, comme l'a souligné déjà, se fait facilement en $('#element').css('display', 'inline')
.
Ce que je cherchais une solution pour SUPPRIMER le style en ligne complètement. J'en ai besoin pour un plugin que j'écris où je dois mettre temporairement de certaines CSS valeurs, mais veulent pour ensuite les retirer; je veux la feuille de style afin de reprendre le contrôle. Je pourrais le faire par le stockage de l'ensemble de ses valeurs d'origine, puis de les remettre en ligne, mais cette solution se sent beaucoup plus clair pour moi.
Ici, il est en format de plugin:
(function($)
{
$.fn.removeStyle = function(style)
{
var search = new RegExp(style + '[^;]+;?', 'g');
return this.each(function()
{
$(this).attr('style', function(i, style)
{
return style.replace(search, '');
});
});
};
}(jQuery));
Si vous incluez ce plugin dans la page avant de votre script, vous pouvez simplement appeler
$('#element').removeStyle('display');
et cela devrait faire l'affaire.
Mise à jour: je réalise maintenant que tout cela est vain. Vous pouvez tout simplement mis à vide:
$('#element').css('display', '');
et il va automatiquement pour vous.
Voici une citation de la documentation:
Réglage de la valeur d'une propriété de style à une chaîne vide - par exemple,
$('#mydiv').css('color', '')
- supprime la propriété d'un élément si elle a déjà été appliquée directement, que ce soit dans l'attribut de style HTML, par le biais de jQuery.css()
méthode, ou par l'intermédiaire direct de manipulation du DOM de la propriété de style. Il n'est pas, cependant, de supprimer un style qui a été appliquée avec une règle CSS dans une feuille de style ou<style>
élément.
Je ne pense pas que jQuery est en train de faire de la magie ici; il semble que l' style
objet ne ce mode natif.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.