data-*: attributo HTML

Gli attributi script-* formano una classe di attributi chiamati attributi di dati personalizzati , che consentono lo scambio di informazioni proprietarie tra l' HTML e la sua rappresentazione DOM tramite script.

Tutti questi dati personalizzati sono disponibili tramite l'interfaccia HTMLElement dell'elemento su cui è impostato l'attributo. La proprietà HTMLElement.dataset dà accesso ad essi. * può essere sostituito da qualsiasi nome seguendo la regola di produzione dei nomi XML con le seguenti restrizioni:

  • Il nome non deve iniziare con xml (senza distinzione tra maiuscole e minuscole).
  • Il nome non deve contenere caratteri due punti (:).
  • Il nome non deve contenere lettere maiuscole.

Si noti che la proprietà HTMLElement.dataset è a DOMStringMap e il nome dell'attributo di dati personalizzato data-test-value sarà accessibile tramite HTMLElement.dataset.testValue (o tramite HTMLElement.dataset["testValue"]) poiché qualsiasi trattino (U+002D) viene sostituito dalla maiuscola della lettera successiva, convertendo il nome in camelcase.

Utilizzo

Aggiungendo attributi data-*, anche i normali elementi HTML possono diventare oggetti di programma piuttosto complessi e potenti. Ad esempio, uno " sprite " di un'astronave in un gioco potrebbe essere un semplice elemento <img> con un attributo class e diversi attributi data-*:

<img class="spaceship cruiserX3" src="shipX3.png"
data-ship-id="324" data-weapons="laserI laserII" data-shields="72%"
data-x="414354" data-y="85160" data-z="31940"
onclick="spaceships[this.dataset.shipId].blasted()">