Gibt es in jQuery eine Möglichkeit, alle CSS von einem vorhandenen Element abzurufen und auf ein anderes anzuwenden, ohne sie alle aufzulisten?
Ich weiß, dass es funktionieren würde, wenn sie ein Stilattribut wären attr()
, aber alle meine Stile befinden sich in einem externen Stylesheet.
javascript
jquery
css
Alex
quelle
quelle
Zwei Jahre zu spät, aber ich habe die Lösung, die Sie suchen. Ich habe nicht die Absicht, dem ursprünglichen Autor eine Gutschrift zu geben. Hier ist ein Plugin, das meiner Meinung nach außergewöhnlich gut für Ihre Anforderungen funktioniert, aber alle möglichen Stile in allen Browsern, sogar im Internet Explorer, enthält.
Warnung: Dieser Code generiert viel Ausgabe und sollte sparsam verwendet werden. Es werden nicht nur alle Standard-CSS-Eigenschaften kopiert, sondern auch alle Hersteller-CSS-Eigenschaften für diesen Browser.
jquery.getStyleObject.js:
Die grundlegende Verwendung ist ziemlich einfach, aber er hat auch eine Funktion dafür geschrieben:
Hoffentlich hilft das.
quelle
this.css()
? Es gibt keine Dokumentation für diese Methode, die keine Argumente enthält. Wenn diese Anweisung erreicht wird, wird eine Ausnahme ausgelöst. Ich denke, es wäre angemessener,return returns;
selbst wenn es ein leeres Objekt ist.$("#div2").copyCSS($("#div1"));
und um den Stil eines Elements zu erhalten, das Sie verwenden können:JSON.stringify($('#element').getStyleObject());
Warum nicht
.style
das DOM-Element verwenden ? Es ist ein Objekt, das Mitglieder wiewidth
und enthältbackgroundColor
.quelle
Ich hatte viele verschiedene Lösungen ausprobiert. Dies war das einzige, das für mich funktioniert hat, da es in der Lage war, Stile aufzunehmen, die auf Klassenebene und auf Stil angewendet wurden, der direkt dem Element zugeordnet wurde. Also eine Schriftart auf CSS-Dateiebene und eine als Stilattribut; Es wurde die richtige Schriftart zurückgegeben.
Es ist einfach! (Entschuldigung, kann nicht finden, wo ich es ursprünglich gefunden habe)
Alternativ können Sie den gesamten Stil auflisten, indem Sie durch das Array blättern
quelle
Die Lösung von @ marknadal hat für mich keine getrennten Eigenschaften erfasst (z. B.
max-width
), aber das Ändern der erstenfor
Schleifecss2json()
hat dazu geführt, dass es funktioniert, und ich vermute, dass weniger Iterationen ausgeführt werden:Schleifen über
length
stattin,
abrufen übergetPropertyValue()
statttoLowerCase().
quelle