2010-07-29 15 views
5

Eventuali duplicati:
Can I just make up attributes on my HTML tags?Append personalizzato a un nodo DOM

Ciao,

Non sono sicuro se quello che chiedo è ancora possibile, ma io' Mi piacerebbe essere in grado di aggiungere una proprietà personalizzata (non restituita) ad un nodo DOM HTML esistente.

Per esempio, se ho un semplice DOM come di seguito:

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

.. mi piacerebbe essere in grado di aggiungere una proprietà personalizzata a campata 'Aspan' per memorizzare una variabile numerica.

È possibile e, in tal caso, qual è il modo migliore per farlo?

Grazie,

+2

Sede [Posso recuperare gli attributi sul mio HTML tag] (http: // StackOverflow.it/questions/427262/can-i-just-make-up-attributes-on-my-html-tag) –

risposta

9

Certo, lo faccio tutto il tempo. Puoi farlo nel codice HTML:

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

(validatori non piace questo, però, tecnicamente non è valido html ma funziona)

oppure tramite javascript:

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

Puoi leggerlo con:

element.getAttribute('attname');

+3

a seconda del tuo doctype potrebbe non essere valido. È meglio usare l'HTML5 'data-attname =" blah "' – Ped

+0

Beh, questo è stato risolto nel 2010, ma tu sei corretto, ora antepongo sempre "data-" ai nomi degli attributi personalizzati. – Rob

0

un modo semplice .. se la pagina è dinamica .. si può semplicemente aggiungere un valore al tuo ID

un piccolo esempio, se ho capito bene, si può utilizzare in una classe, si suppone avere un 56 ha ID

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

io semplicemente fatto una stringa l'ID 'A54F23345A' + 56 + 'A23524234'

Ma è possibile utilizzarlo ha desiderate .. e l'id è nascosto da parte degli utenti .. puoi usare di più sceneggiatura sicuro .. ma se non è un problema di sicurezza .. funziona come un fascino ^^

have a nice day

2

Date un'occhiata a the duplicate question per motivi per cui non fare questo questo e le restrizioni su come si può fare legalmente in HTML 5.

Nonostante gli errori di convalida che riceverete, utilizzando jQuery è possibile utilizzare la funzione di $.attr():

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