Użycie tego skryptu do utworzenia obiektu stylu ze wszystkich odziedziczonych stylów itp.
var style = css($(this));
alert (style.width);
alert (style.text-align);
z poniższym, pierwszy alert będzie działał dobrze, ale drugi nie. -
Zakładam, że interpretuje jako minus .. debugger mówi „nieprzechwycony błąd odniesienia”. Nie mogę jednak umieszczać go w cudzysłowie, ponieważ nie jest to ciąg. Jak więc używać tej właściwości obiektu?
javascript
properties
Damon
źródło
źródło
CSS
tagu? [Tak, wiem, że minęło 7 lat. :)]any js property
że miałem problem z odwołaniem się do właściwości, która zawierała łącznik (która również była własnością CSS ... nie zdawałem sobie sprawy, że jest inny problem z tym, co próbowałem zrobić). Więc jest to dziwne, które kończy się na omówieniu 2 różnych problemów. ale powiedziałbym, że najlepsza odpowiedź wyjaśnia oba problemy.Odpowiedzi:
EDYTOWAĆ
Spójrz na komentarze, które zobaczysz, że w przypadku właściwości CSS notacja klucza nie jest zgodna z wieloma właściwościami. Dlatego obecnie stosuje się notację klucza w przypadku wielbłąda
Użyj notacji klawiszy zamiast kropki
Wszystkie tablice w js są obiektami, a wszystkie obiekty są po prostu tablicami asocjacyjnymi, co oznacza, że możesz odwoływać się do miejsca w obiekcie, tak jak odnosisz się do klucza w tablicy.
lub obiekt
kilka rzeczy, o których należy pamiętać podczas uzyskiwania dostępu do właściwości w ten sposób
są one oceniane, więc używaj łańcuchów, chyba że robisz coś z licznikiem lub używasz dynamicznych nazw metod.
oznacza to, że obj [metoda] dałoby nieokreślony błąd, podczas gdy obj ["metoda"] nie
Musisz użyć tej notacji, jeśli używasz znaków, które nie są dozwolone w zmiennych js.
To wyrażenie regularne prawie to podsumowuje
źródło
Właściwości CSS z a
-
są reprezentowane w camelCase w obiektach Javascript. To byłoby:Możesz również użyć notacji nawiasów, aby użyć ciągu:
Nazwy nieruchomości mogą zawierać tylko znaki, cyfry, dobrze znany
$
znak i_
(dzięki pimvdb).źródło
var ò_ó = 'angry';
Odpowiedź na pierwotne pytanie brzmi: umieść nazwę właściwości w cudzysłowie i użyj indeksowania w stylu tablicy:
Kilka osób zwróciło uwagę, że interesująca Cię właściwość to właściwość CSS. Właściwości CSS zawierające łączniki są automatycznie konwertowane na łuskę wielbłąda. W takim przypadku możesz użyć nazwy w postaci wielbłąda, takiej jak:
Jednak to rozwiązanie działa tylko dla właściwości CSS. Na przykład,
źródło
Użyj nawiasów:
Więcej informacji o obiektach: MDN
UWAGA: Jeśli uzyskujesz dostęp do obiektu stylu , CSSStyleDeclaration , użyj must camelCase, aby uzyskać do niego dostęp z poziomu javascript. Więcej informacji tutaj
źródło
lub
źródło
Odpowiadając bezpośrednio na pytanie:
style['text-align']
jak odnosić się do właściwości z łącznikiem. Alestyle.textAlign
(lubstyle['textAlign']
) jest tym, co powinno być używane w tym przypadku.źródło
Odwołania do właściwości stylu z łącznikami są dostępne za pośrednictwem camelCase w JavaScript , więc użyj
style.textAlign
.źródło
Aby rozwiązać problem : właściwości CSS zawierające myślniki są reprezentowane przez właściwości JavaScript w camelCase, aby uniknąć tego problemu. Chcesz:
style.textAlign
.Aby odpowiedzieć na pytanie : Użyj notacji z nawiasami kwadratowymi :
obj.prop
to to samoobj["prop"]
, co w przypadku dostępu do nazw właściwości za pomocą łańcuchów i używania znaków, które są zabronione w identyfikatorach.źródło
Nazwy właściwości obiektów nie są dopasowaniami jeden do jednego dla nazw CSS.
źródło
Myślę, że w przypadku stylów CSS oni się przebrać do CamelCase w JavaScript więc
test-align
stajetextAlign
. W ogólnym przypadku, gdy chcesz uzyskać dostęp do właściwości zawierającej niestandardowe znaki, używasz stylu tablicowego.['text-align']
źródło
Na początku zastanawiam się, dlaczego rozwiązanie nie zadziałało z mojej strony
... później przekonaj się, że dostęp do atrybutów danych przebiega inaczej: powinno wyglądać tak:
Mam nadzieję że to pomoże!
źródło