Existe-t-il un moyen dans jQuery d'obtenir tous les CSS d'un élément existant et de les appliquer à un autre sans les répertorier tous?
Je sais que cela fonctionnerait s'ils étaient un attribut de style avec attr()
, mais tous mes styles sont dans une feuille de style externe.
javascript
jquery
css
alex
la source
la source
Deux ans de retard, mais j'ai la solution que vous cherchez. N'ayant pas l'intention de prendre le crédit de l' auteur d'origine , voici un plugin qui, selon moi, fonctionne exceptionnellement bien pour ce dont vous avez besoin, mais obtient tous les styles possibles dans tous les navigateurs, même IE.
Avertissement: ce code génère beaucoup de résultats et doit être utilisé avec parcimonie. Il copie non seulement toutes les propriétés CSS standard, mais également toutes les propriétés CSS du fournisseur pour ce navigateur.
jquery.getStyleObject.js:
L'utilisation de base est assez simple, mais il a également écrit une fonction pour cela:
J'espère que cela pourra aider.
la source
this.css()
? Il n'y a pas de documentation pour cette méthode ne prenant aucun argument, et si cette instruction est atteinte, elle lève une exception. Je pense qu'il serait plus appropriéreturn returns;
même si c'est un objet vide.$("#div2").copyCSS($("#div1"));
et pour obtenir le style de tout élément que vous pourriez utiliser:JSON.stringify($('#element').getStyleObject());
Pourquoi ne pas utiliser
.style
l'élément DOM ? C'est un objet qui contient des membres tels quewidth
etbackgroundColor
.la source
J'avais essayé de nombreuses solutions différentes. C'est le seul qui a fonctionné pour moi en ce sens qu'il a pu reprendre les styles appliqués au niveau de la classe et au style directement attribué à l'élément. Donc, une police définie au niveau du fichier CSS et une comme attribut de style; il a renvoyé la police correcte.
C'est simple! (Désolé, je ne trouve pas où je l'ai trouvé à l'origine)
Alternativement, vous pouvez lister tout le style en parcourant le tableau
la source
La solution de @ marknadal ne récupérait pas les propriétés coupées pour moi (par exemple
max-width
), mais changer la premièrefor
boucle encss2json()
faisait fonctionner, et je soupçonne d'effectuer moins d'itérations:Boucle via
length
plutôt quein,
récupère viagetPropertyValue()
plutôt quetoLowerCase().
la source