2009-09-16 14 views

Respuesta

14

Hasta HTML5 no. Con HTML 5, hay una provisión para esto con el atributo data-*.

Por ejemplo: -

<div id="myStuff" data-mydata="here is my data"> 

En la tecnología actual no existe un "oficial" de distancia para hacer esto. Sin embargo todos los navegadores le permiten añadir cualquier atributo arbitrario a un elemento HTML por lo que en HTML 4 se puede hacer esto: -

<div id="myStuff" data-mydata="here is my data"> 

que como se puede ver es idéntica, pero no sactioned oficialmente y si quieres cumplimiento XHMTL estricta serán considerado "roto".

Puede acceder a los atributos del mismo modo que cualquier otro: -

var mydata = document.getElementById("myStuff").getAttribute("data-mydata"); 
+0

Downvoter, comentar por favor? – AnthonyWJones

3

¿Podría quizás usar el html5 data-* attributes? Fallará la validación en html4, pero probablemente sea la mejor opción ...

+1

Aunque fallará una validación estricta en html4, seguirá funcionando porque todos los navegadores lo aceptan, y al final, eso es lo que realmente importa. – awe

0

Tenga una mirada en www.htmlref.com o W3C para los atributos utilizados.

Aparte de los que solo puede agregar los suyos, se renderizarán y se podrá acceder a ellos mediante el código, por ejemplo, en C# puede acceder a una colección de atributos de control.

Control.Attributes ["MyCustomAttribute"] = "Hola mundo";

0

hay rel y rev atributos, que funcionan en elementos con un href -tributo. tienen un significado semántico, pero a menudo se usan como un atributo para almacenar información adicional

+2

Entonces, ¿deberíamos abusar de esos atributos también? – Gumbo

1

Si está almacenando datos para usar en javascript, también puede usar algo como el complemento de metadatos de jQuery. Básicamente, puede almacenar datos dentro de la clase del elemento = "" atributo, así:

<div id="aaa" class="class1 class2 class3 { type: 'food', color: 'green' }"></div> 

Luego, en javascript:

alert($('#aaa').metadata().color) // "green" 

Otros kits utilizan el título o los atributos rel para almacenar datos. Si bien es más compatible con la validación, puede o no ser mejor que utilizar la respuesta de AnthonyWJones de simplemente usar atributos no estándar. Va a "romper" la validación, pero de nuevo según Dojo, los atributos personalizados son HTML perfectamente válidos, incluso si no se validan contra un DTD.

Así que no, no hay un único atributo específico bien aceptado en el que pueda volcar todos los datos. Todos los atributos existentes son para usos específicos. Pero puede: 1) crear sus propios atributos, o 2) cooptar una etiqueta existente para reutilizarla para sus propósitos. Solo quería señalar la alternativa.

+0

hmm buena respuesta, y sinceramente he usado esto antes, creo que el pasado enero – lock

Cuestiones relacionadas