Есть ли способ в jQuery получить весь CSS из существующего элемента и применить его к другому, не перечисляя их все?
Я знаю, что это сработало бы, если бы они были атрибутом стиля attr()
, но все мои стили находятся во внешней таблице стилей.
javascript
jquery
css
Алекс
источник
источник
Два года спустя, но у меня есть решение, которое вы ищете. Не собираясь брать кредит от первоначального автора , вот плагин, который, как я обнаружил, работает исключительно хорошо для того, что вам нужно, но получает все возможные стили во всех браузерах, даже в IE.
Предупреждение: этот код генерирует много выходных данных, и его следует использовать с осторожностью. Он не только копирует все стандартные свойства CSS, но также и все свойства CSS поставщика для этого браузера.
jquery.getStyleObject.js:
Основное использование довольно просто, но он также написал функцию для этого:
Надеюсь, это поможет.
источник
this.css()
? Для этого метода нет документации , не принимающей аргументов, и если этот оператор достигнут, он генерирует исключение. Я думаю, что было бы более уместно,return returns;
даже если это пустой объект.$("#div2").copyCSS($("#div1"));
и чтобы получить стиль любого элемента, который вы можете использовать:JSON.stringify($('#element').getStyleObject());
Почему бы не использовать
.style
элемент DOM ? Это объект, который содержит элементы, такие какwidth
иbackgroundColor
.источник
Я перепробовал много разных решений. Это был единственный способ, который мне помог, так как он был в состоянии уловить стили, применяемые на уровне класса и в стиле, непосредственно приписываемом элементу. Таким образом, шрифт установлен на уровне файла CSS и один в качестве атрибута стиля; вернул правильный шрифт.
Это просто! (Извините, не могу найти, где я его изначально нашел)
Кроме того, вы можете перечислить все стили, циклически перемещаясь по массиву
источник
Решение @ marknadal не собирало для меня свойства дефиса (например
max-width
), но изменило первыйfor
цикл, чтобыcss2json()
оно заработало, и я подозреваю, что выполняется меньше итераций:Циклы через,
length
а неin,
извлекают через,getPropertyValue()
а неtoLowerCase().
источник