Apakah ada cara di jQuery untuk mendapatkan semua CSS dari elemen yang ada dan menerapkannya ke yang lain tanpa mendaftar semuanya?
Saya tahu itu akan berhasil jika mereka adalah atribut gaya attr()
, tetapi semua gaya saya berada di lembar gaya eksternal.
javascript
jquery
css
alex
sumber
sumber
Dua tahun terlambat, tapi saya punya solusi yang Anda cari. Tidak bermaksud mengambil kredit dari pembuat aslinya , berikut ini adalah plugin yang saya temukan berfungsi sangat baik untuk apa yang Anda butuhkan, tetapi mendapatkan semua gaya yang mungkin di semua browser, bahkan IE.
Peringatan: Kode ini menghasilkan banyak output, dan harus digunakan dengan hemat. Itu tidak hanya menyalin semua properti CSS standar, tetapi juga semua properti CSS vendor untuk browser itu.
jquery.getStyleObject.js:
Penggunaan dasar cukup sederhana, tapi dia juga menulis fungsi untuk itu:
Semoga itu bisa membantu.
sumber
this.css()
? Tidak ada dokumentasi untuk metode ini yang tidak mengambil argumen, dan jika pernyataan ini tercapai, ia mengeluarkan pengecualian. Saya pikir itu akan lebih tepatreturn returns;
bahkan jika itu adalah objek kosong.$("#div2").copyCSS($("#div1"));
dan untuk mendapatkan gaya elemen apa pun yang dapat Anda gunakan:JSON.stringify($('#element').getStyleObject());
Mengapa tidak menggunakan
.style
elemen DOM ? Ini adalah objek yang berisi anggota sepertiwidth
danbackgroundColor
.sumber
Saya telah mencoba berbagai solusi. Ini adalah satu-satunya yang bekerja untuk saya karena mampu mengambil gaya yang diterapkan di tingkat kelas dan gaya yang secara langsung dikaitkan dengan elemen. Jadi font ditetapkan pada level file css dan satu sebagai atribut style; itu mengembalikan font yang benar.
Itu sederhana! (Maaf, tidak dapat menemukan tempat saya awalnya menemukannya)
Atau Anda dapat membuat daftar semua gaya dengan bersepeda melalui array
sumber
Solusi @ marknadal tidak mengambil properti yang ditulis dgn tanda penghubung untuk saya (misalnya
max-width
), tetapi mengubahfor
loop pertamacss2json()
membuatnya bekerja, dan saya curiga melakukan iterasi yang lebih sedikit:Loop melalui
length
alih-alihin,
mengambil melaluigetPropertyValue()
alih-alihtoLowerCase().
sumber