2010-07-29 12 views
5

Duplicar posible:
Can I just make up attributes on my HTML tags?Anexar atributos personalizados a un nodo DOM

Hola,

No estoy seguro de si lo que estoy pidiendo es aún posible, pero yo Me gustaría poder agregar una propiedad personalizada (no entregada) a un nodo HTML DOM existente.

Por ejemplo, si tengo un DOM simple como a continuación:

<body> 
<p> 
    <span id="aSpan"></span> 
</p> 
</body> 

.. Me gustaría ser capaz de añadir una propiedad personalizada al rango de medición 'ASPAN' para almacenar una variable numérica.

¿Es esto posible y, de ser así, cuál es la mejor manera de hacerlo?

Gracias,

+2

Ver [¿Puedo compensar atributos en mi HTML etiquetas?] (http: // stackoverflow.com/questions/427262/can-i-just-make-up-attributes-on-my-html-tags) –

Respuesta

9

Claro, yo hago esto todo el tiempo. Puede hacerlo en el html:

<span id="aSpan" attname="attvalue">

(validadores no les gusta esto, sin embargo, técnicamente no es HTML válido, pero funciona)

O a través de JavaScript:

element.setAttribute('attname', 'attvalue');

Puedes leerlo con:

element.getAttribute('attname');

+3

dependiendo de su doctype esto puede no ser válido. Es mejor usar HTML5 'data-attname =" blah '' – Ped

+0

Bueno, esto fue respondido en 2010, pero está en lo cierto, ahora siempre antepongo 'datos-' a nombres de atributos personalizados. – Rob

0

una forma sencilla .. si su página es dinámica .. simplemente puede añadir un valor a su identificación

un pequeño ejemplo si entiendo bien, usted puede utilizarlo en una clase, que supone tener un 56 tiene ID

<body> 
<p> 
    <span id="aSpan" class="A54F23345A56A23524234"></span> 
</p> 
</body> 

yo simplemente hice una cadena el ID 'A54F23345A' + 56 + 'A23524234'

pero se puede utilizar tiene que desea .. y la identificación es oculto para los usuarios .. puedes usar mas guión seguro .. pero si no es un problema de seguridad .. funciona como un encanto ^^

tenga un buen día

2

Tome un vistazo a the duplicate question las razones por las que no lo hiciera esto y restricciones sobre cómo se puede hacer legalmente en HTML 5.

a pesar de los errores de validación que va a recibir, usando jQuery se puede hacer uso de la función $.attr():

$('.element').attr('foo', 'bar') 
Cuestiones relacionadas