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?
Odpowiedz
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
.
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: '
@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. –
jQuery.data to preferowany sposób robienia tego.
- 1. Dodawanie elementu nadrzędnego div w wielu elementach div
- 2. Przycisk ukrywania css do ujęcia div
- 3. Wzór projektu dla przetwarzania danych? (Alternatywa MVC)
- 4. Jak dopasować linię bazową w dwóch pływających elementach div
- 5. Alternatywa dla innerHTML?
- 6. Alternatywa dla adresu URL zakotwiczenia
- 7. Alternatywa dla php tidy?
- 8. Łatwiejszy sposób ukrywania/pokazywania elementów div za pomocą JQuery
- 9. Alternatywa dla BerkeleyDB?
- 10. Alternatywa dla pliku CSV?
- 11. Skuteczna alternatywa dla Data.Vector.dropWhile
- 12. Alternatywa dla dynamicComponentLoader w angular2 RC5?
- 13. Alternatywa dla NERDTree w Vim
- 14. alternatywa dla listagg w Oracle?
- 15. alternatywa dla @ formula w jpa
- 16. Alternatywa dla __uuidof w C
- 17. alternatywa dla mysql_field_name w mysqli
- 18. Alternatywa dla PhantomJS do testowania
- 19. Alternatywa dla licznika Pythona dla języka Java
- 20. Alternatywa dla servicewrapper dla java?
- 21. Alternatywa dla readAsBinaryString dla IE10
- 22. Alternatywa dla supervisora dla docker
- 23. Alternatywa dla „w” operatora dla zagnieżdżonych list
- 24. Alternatywa dla Firebuga dla Firefoksa?
- 25. Perl DBI alternatywa dla LongReadLena
- 26. Alternatywa dla funkcji constexpr
- 27. IE8 alternatywa dla window.scrollY?
- 28. Wieloplatformowa alternatywa dla COM
- 29. Alternatywa dla JFileChooser
- 30. Alternatywa dla Androida dla Line2D?
niesamowite, dzięki chłopaki. – Orbit
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 :) –
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