2010-11-22 22 views
5

He estado usando rel para almacenar algo de información que no es html, ¿qué otros atributos no se usan comúnmente que pueda utilizar para almacenar información?Información diversa Atributos del elemento HTML

+1

Esto es algo peligroso. El atributo Rel es en realidad bastante utilizado, es decir, el bot de Google, entre otras cosas, lo usa. No es aconsejable utilizar atributos HTML definidos para sus propios fines. –

+0

@Chris: Todo esto está generado por un fragmento de JavaScript, nada que nadie debería leer. –

+0

exactamente el punto! –

Respuesta

5

Es posible que desee cambiar a HTML5 y utilizar custom data attributes.

+0

Antes de que HTML5 saliera con esto, siempre he usado _ algo como nombres de atributos para datos personalizados, bajo la suposición de que es muy poco probable que un atributo real comience con un guión bajo. ¿Es esto una suposición "aceptable", o sería mejor cambiar todo a datos, algo? –

+0

Yo recomendaría usar 'data- *', porque es válido HTML en la negociación. –

+0

Usaré esto, gracias. Estoy usando la función 'attr' de jQuery para que no se necesite una implementación JS nativa. –

3

En HTML5 puede definir su propia data- atributos para almacenar lo que quieras.

3

Puede crear sus propios atributos si lo desea. Probablemente no sea una buena idea colocar datos en un atributo si por especificación debe tener algo significativo allí.

2

En el HTML 5 spec, puede usar los atributos data-*; se garantiza que no harán nada con el navegador y también funcionarán en navegadores más antiguos.

En JavaScript, se puede acceder a ella con las propiedades normales de atributos:

var value = elem.getAttribute("data-foo") 
elem.setAttribute("data-foo", "value") 
elem.removeAttribute("data-foo") 

Con los nuevos navegadores que puede utilizar elem.dataset, pero es probable que no quieren hacer que a medida que los navegadores antiguos no lo soportarán .

var value = elem.dataset.foo; 
elem.dataset.foo = "value"; 
elem.dataset.foo = null; 
1

HTML5 ahora supports almacenar información en Data- * atributos, pero eso es HTML5 y todo el mundo no está allí todavía. Entonces, un escenario del mundo real ...

Si no tiene que preocuparse de que persista en las columnas posteriores, puede asignar objetos de datos simples como var de colección JSON y extraer un objeto de una clave determinada. Pero ese es un enfoque amplio: más información sobre el objetivo general mejoraría la retroalimentación.

1

Depende del tipo de información que desee almacenar y de cómo piensa acceder a ella. Utilicé con éxito los atributos id y class para almacenar y acceder a los ID de la base de datos, por ejemplo, e incluso referencias para algunas tablas de bases de datos, que luego recuperé con jQuery para hacer algunas solicitudes AJAX.

Si NO está utilizando HTML5, le aconsejaría que no use sus propios atributos personalizados. De lo contrario, como las personas que ya se sugirieron antes que yo, eche un vistazo a los atributos prefijados data-.

0

data- * es el camino a seguir si puede usar HTML5. También puede acceder fácilmente a ellos en javascript con elem.data. *

De lo contrario, los atributos personalizados son probablemente mejores que atornillar la semántica de la página.

Cuestiones relacionadas