Existe uma maneira no jQuery obter todo o CSS de um elemento existente e aplicá-lo a outro sem listar todos eles?
Eu sei que funcionaria se eles fossem um atributo de estilo attr()
, mas todos os meus estilos estão em uma folha de estilos externa.
javascript
jquery
css
alex
fonte
fonte
Dois anos atrasado, mas eu tenho a solução que você está procurando. Não pretendendo assumir o crédito do autor original , aqui está um plugin que eu achei que funciona excepcionalmente bem para o que você precisa, mas obtém todos os estilos possíveis em todos os navegadores, até no IE.
Aviso: Este código gera muita saída e deve ser usado com moderação. Ele não apenas copia todas as propriedades CSS padrão, mas também todas as propriedades CSS do fornecedor para esse navegador.
jquery.getStyleObject.js:
O uso básico é bastante simples, mas ele também escreveu uma função para isso:
Espero que ajude.
fonte
this.css()
? Não há documentação para este método sem argumentos, e se essa instrução for atingida, ela lança uma exceção. Eu acho que seria mais apropriado,return returns;
mesmo que seja um objeto vazio.$("#div2").copyCSS($("#div1"));
e para obter o estilo de qualquer elemento que você poderia usar:JSON.stringify($('#element').getStyleObject());
Por que não usar
.style
o elemento DOM ? É um objeto que contém membros comowidth
ebackgroundColor
.fonte
Eu tentei muitas soluções diferentes. Esse foi o único que funcionou para mim, pois foi capaz de captar os estilos aplicados no nível da classe e no estilo, como diretamente atribuídos ao elemento. Portanto, uma fonte definida no nível do arquivo css e outra como um atributo de estilo; retornou a fonte correta.
É simples! (Desculpe, não consigo encontrar onde o encontrei originalmente)
Como alternativa, você pode listar todo o estilo percorrendo a matriz
fonte
A solução do @ marknadal não estava pegando propriedades hifenizadas para mim (por exemplo
max-width
), mas alterar o primeirofor
loopcss2json()
fez com que funcionasse, e suspeito que realiza menos iterações:Loops via em
length
vez dein,
recupera via emgetPropertyValue()
vez detoLowerCase().
fonte