2011-02-04 12 views
7

Zbyt często znajduję się przechowując dane obiektów w ukrytych elementach dom. Byłem ciekawy, czy istnieje sposób, aby dołączyć te dane do samego węzła dom. Kiedy próbuję tworzyć atrybuty "w locie", wydaje się, że nie działa. O wiele łatwiej byłoby uzyskać dostęp do nieruchomości z tym parametrem, zamiast uzyskać dostęp do html zawartego w pliku potomnym. Czuję, że powinienem wiedzieć, jak to zrobić, ale nie wiem. Dzięki.alternatywa dla ukrywania danych w elementach div?

+0

niesamowite, dzięki chłopaki. – Orbit

+0

Jak już wspomniano, jQuery.data jest prawdopodobnie tym, czego szukasz. To powiedziawszy, spójrz na specyfikacje html5 i atrybuty 'data-', które są całkiem niesamowite, i coś, co zobaczysz, używane już w wielu witrynach, ponieważ nie pękają one w przeglądarkach nie html5 :) –

+0

Nie wiem, dlaczego dodawanie atrybuty "w locie" nie działają dla Ciebie. Spójrz na ten przykład, aby zobaczyć, jak sprawić, aby działało (http://www.webdevout.net/test?01o) – nybbler

Odpowiedz

9

Jest absolutnie! jQuery's .data().

$('#someId').data('myData', someValue); // To store the data 
$('#someId').data('myData'); // To retrieve it again 

Każda zmienna JavaScript może być przechowywana jako dane - nie jest ograniczona do ciągów.

Należy zauważyć, że to faktycznie nie dołącza danych do węzła DOM, jak mówisz (czego należy unikać). jQuery zachowuje własną pamięć podręczną wszystkich przechowywanych danych i węzły DOM, do których chcesz je dołączyć. Więc to nie to samo, co domNode.myData = someValue.

+2

Warto nadmienić, że metoda 'data()' użyje atrybutów HTML5 'data -' jako mechanizmu przechowywania/pobierania. Możliwe jest zapisywanie znaczników za pomocą atrybutów danych, które mogą być odczytane przez jQuery. EG: '

Cat
' wartość atrybutu 'data-animal' może zostać odczytana w następujący sposób:' alert ($ ('# animal-1'). Data ('animal')); // cat' –

+0

@Nathan, prawdopodobnie powinienem był o tym wspomnieć. Chociaż atrybut HTML jest używany tylko do pobierania, a nie do przechowywania i tylko do wartości początkowej. –