Demasiado a menudo me encuentro almacenando datos de objetos en elementos dom ocultos. Tenía curiosidad si había una manera de adjuntar esta información al nodo dom mismo. Cuando intento crear atributos 'sobre la marcha', parece que no funciona. Sería mucho más fácil acceder a la propiedad con this.something en lugar de acceder al html contenido en un niño. Siento que debería saber cómo hacer esto, pero no es así. Gracias.una alternativa a la ocultación de datos en divs?
Respuesta
¡Absolutamente! jQuery's .data()
.
$('#someId').data('myData', someValue); // To store the data
$('#someId').data('myData'); // To retrieve it again
Cualquier variable de JavaScript se puede almacenar como datos; no está limitada a cadenas.
Tenga en cuenta que esto realmente no adjunta datos al nodo DOM como usted dice (lo cual debe evitarse). jQuery mantiene su propio caché de todos los datos que almacena y los nodos DOM a los que desea adjuntarlos. Por lo tanto, no es lo mismo que domNode.myData = someValue
.
Vale la pena mencionar que el método 'data()' usará los atributos HTML5 'data-' como un mecanismo de almacenamiento/recuperación. Es posible escribir su marcado con los atributos de datos que puede leer jQuery. EG: '
@Nathan, probablemente debería haber mencionado eso. Aunque el atributo HTML solo se usa para la recuperación, no para el almacenamiento, y solo para el valor inicial. –
jQuery.data es la forma preferida de hacerlo.
- 1. Ocultación de datos en Javascript
- 2. hacer una ocultación en dos variables jquery a la vez (pregunta básica)
- 3. Ocultación automática
- 4. alternativa a la base de datos de votación?
- 5. divs pongo a continuación float: left divs
- 6. ¿Una alternativa a php tidy?
- 7. ¿Alternativa a la gitosis?
- 8. Buscando una alternativa a cfdump
- 9. Ocultación/filtrado de nodos en un JTree?
- 10. Una alternativa a la anotación @Value en la función estática
- 11. Una mejor alternativa a Vagrant
- 12. Buscando una alternativa a JasperReports
- 13. ¿Una alternativa a minibufexplorer (vim)?
- 14. ¿Existe una alternativa a TOP en MySQL?
- 15. Deshabilitar la ocultación automática de barras de desplazamiento en Lion
- 16. Una alternativa productiva a UML
- 17. Alternativa al TimesTen en la base de datos de memoria
- 18. alternativa a la votación. Actualizaciones de HTML
- 19. ¿Alternativa a MDI en WPF?
- 20. Una buena alternativa a eregi() en PHP
- 21. Buscando alternativa a glTexSubImage2d con soporte de compensación de datos
- 22. Divs vs tablas para datos tabulares
- 23. Ocultación de un botón en WPF
- 24. Sobrecarga, anulación y ocultación?
- 25. ¿Existe una alternativa genérica a la clase ListDictionary?
- 26. ¿Alternativa ligera a Hibernate?
- 27. alternativa a la sentencia if en Java
- 28. ¿Cuál es la alternativa a los cursores para recuperar grandes cantidades de datos de una base de datos?
- 29. ¿Existe una buena alternativa a la extensión SOAP de PHP?
- 30. ¿Una alternativa viable a la inyección de dependencia?
increíble, gracias chicos. – Orbit
Como ya se mencionó, jQuery.data es probablemente lo que está buscando. Dicho esto, mire las especificaciones html5 y los atributos 'data-', que son bastante impresionantes, y algo que ya verá utilizado en muchos sitios, ya que no se dividen en navegadores no html5 :) –
No estoy seguro de por qué agregar atributos 'sobre la marcha' no funciona para usted. Eche un vistazo a este ejemplo para ver cómo hacerlo funcionar (http://www.webdevout.net/test?01o) – nybbler