¿Hay alguna manera en jQuery para obtener todos los CSS de un elemento existente y aplicarlos a otro sin enumerarlos todos?
Sé que funcionaría si fueran un atributo de estilo attr()
, pero todos mis estilos están en una hoja de estilos externa.
javascript
jquery
css
alex
fuente
fuente
Dos años de retraso, pero tengo la solución que estás buscando. Sin la intención de obtener crédito del autor original , aquí hay un complemento que encontré funciona excepcionalmente bien para lo que necesita, pero obtiene todos los estilos posibles en todos los navegadores, incluso IE.
Advertencia: este código genera muchos resultados y debe usarse con moderación. No solo copia todas las propiedades CSS estándar, sino también todas las propiedades CSS del proveedor para ese navegador.
jquery.getStyleObject.js:
El uso básico es bastante simple, pero también ha escrito una función para eso:
Espero que ayude.
fuente
this.css()
? No hay documentación para este método que no tome argumentos, y si se alcanza esta declaración, arroja una excepción. Creo que sería más apropiadoreturn returns;
incluso si es un objeto vacío.$("#div2").copyCSS($("#div1"));
y para obtener el estilo de cualquier elemento que pueda usar:JSON.stringify($('#element').getStyleObject());
¿Por qué no usar
.style
el elemento DOM ? Es un objeto que contiene miembros comowidth
ybackgroundColor
.fuente
Había probado muchas soluciones diferentes. Este fue el único que funcionó para mí, ya que fue capaz de retomar los estilos aplicados a nivel de clase y en el estilo directamente atribuido en el elemento. Entonces, una fuente establecida a nivel de archivo css y una como atributo de estilo; devolvió la fuente correcta.
¡Es simple! (Lo siento, no puedo encontrar donde lo encontré originalmente)
Alternativamente, puede enumerar todo el estilo recorriendo la matriz
fuente
La solución de @ marknadal no fue obtener propiedades con guiones para mí (por ejemplo
max-width
), pero cambiar el primerfor
bucle locss2json()
hizo funcionar, y sospecho que realiza menos iteraciones:Recorre vía en
length
lugar dein,
recupera vía engetPropertyValue()
lugar detoLowerCase().
fuente