Menggunakan skrip ini untuk membuat objek gaya dari semua gaya dll yang diwariskan.
var style = css($(this));
alert (style.width);
alert (style.text-align);
dengan yang berikut, peringatan pertama akan bekerja dengan baik, tetapi yang kedua tidak .. itu menafsirkan -
sebagai minus Saya asumsikan .. debugger mengatakan 'kesalahan referensi tidak tertangkap'. Saya tidak bisa memberi tanda kutip, karena itu bukan string. Jadi bagaimana cara menggunakan properti objek ini?
javascript
properties
Damon
sumber
sumber
CSS
tag? [Ya, saya tahu ini sudah 7 tahun. :)]any js property
saya karena saya mengalami masalah dengan mereferensikan properti yang memiliki tanda hubung di dalamnya (yang juga merupakan properti css ... saya tidak menyadari bahwa ada masalah lain dengan apa yang saya coba lakukan). Jadi itu aneh yang akhirnya mencakup 2 masalah berbeda. tetapi menurut saya jawaban teratas menjelaskan kedua masalah tersebut.Jawaban:
EDIT
Perhatikan komentar Anda akan melihat bahwa untuk properti css, notasi kunci tidak kompatibel dengan sejumlah properti. Oleh karena itu, menggunakan notasi kunci kasus unta adalah cara saat ini
Gunakan notasi kunci daripada titik
Semua array di js adalah objek dan semua objek hanyalah array asosiatif, ini berarti Anda bisa merujuk ke suatu tempat di objek seperti Anda merujuk ke kunci dalam array.
atau objeknya
beberapa hal yang perlu diingat saat mengakses properti dengan cara ini
mereka dievaluasi jadi gunakan string kecuali Anda melakukan sesuatu dengan counter atau menggunakan nama metode dinamis.
ini berarti obj [metode] akan memberi Anda kesalahan yang tidak terdefinisi sementara obj ["metode"] tidak
Anda harus menggunakan notasi ini jika Anda menggunakan karakter yang tidak diperbolehkan dalam variabel js.
Regex ini merangkumnya
sumber
Properti CSS dengan a
-
direpresentasikan dalam camelCase dalam objek Javascript. Itu akan menjadi:Anda juga bisa menggunakan notasi braket untuk menggunakan string:
Nama properti hanya boleh berisi karakter, angka,
$
tanda terkenal dan_
(terima kasih kepada pimvdb).sumber
var ò_ó = 'angry';
Jawaban untuk pertanyaan awal adalah: tempatkan nama properti dalam tanda kutip dan gunakan pengindeksan gaya array:
Beberapa orang telah menunjukkan bahwa properti yang Anda minati adalah properti CSS. Properti CSS yang memiliki tanda hubung secara otomatis diubah menjadi casing unta. Dalam hal ini Anda dapat menggunakan nama kandang unta seperti:
Namun solusi ini hanya berfungsi untuk properti CSS. Sebagai contoh,
sumber
Gunakan tanda kurung:
Info lebih lanjut tentang objek: MDN
CATATAN: Jika Anda mengakses objek gaya , CSSStyleDeclaration , gunakan must camelCase untuk mengaksesnya dari javascript. Info selengkapnya di sini
sumber
atau
sumber
Untuk langsung menjawab pertanyaan:
style['text-align']
adalah bagaimana Anda mereferensikan properti dengan tanda hubung di dalamnya. Tapistyle.textAlign
(ataustyle['textAlign']
) apa yang harus digunakan dalam kasus ini.sumber
Properti gaya tanda hubung direferensikan melalui camelCase di JavaScript , jadi gunakan
style.textAlign
.sumber
Untuk mengatasi masalah Anda : Properti CSS dengan tanda hubung di dalamnya diwakili oleh properti JavaScript di camelCase untuk menghindari masalah ini. Anda ingin:
style.textAlign
.Untuk menjawab pertanyaan : Gunakan notasi kurung siku :
obj.prop
samaobj["prop"]
sehingga Anda dapat mengakses nama properti menggunakan string dan menggunakan karakter yang dilarang dalam pengidentifikasi.sumber
Nama properti objek tidak cocok satu-ke-satu untuk nama css.
sumber
Saya pikir dalam kasus gaya CSS mereka berubah menjadi camelCase di Javascript
test-align
menjaditextAlign
. Dalam kasus umum di mana Anda ingin mengakses properti yang berisi karakter non-standar, Anda menggunakan gaya array.['text-align']
sumber
Pada awalnya, saya bertanya-tanya mengapa solusi tersebut tidak berhasil di pihak saya
... nanti mengetahui bahwa mengakses atribut data berbeda: Seharusnya seperti ini:
Semoga ini membantu!
sumber