2009-09-16 5 views

Antwort

14

Bis HTML5-Nr. Bei HTML 5 ist dies mit dem Attribut data-* vorgesehen.

Zum Beispiel: -

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

In aktueller Stand der Technik gibt es keine "offiziellen" entfernt, dies zu tun. Jedoch erlauben alle Browser Sie jede willkürliche Attribut zu einem HTML-Element hinzufügen, damit in HTML4 Sie dies tun können: -

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

Welche wie können Sie sehen, identisch ist, aber nicht offiziell sactioned und wenn Sie strenge XHMTL Compliance wollen wird als "gebrochen" betrachtet.

können Sie das Attribut zugreifen genauso wie andere würde: -

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

Downvoter, bitte kommentieren? – AnthonyWJones

3

Sie könnten vielleicht die html5 data-* attributes verwenden? Es wird die Validierung auf html4 fehlschlagen, aber es ist immer noch wahrscheinlich die beste Option ...

+1

Obwohl es eine strenge Überprüfung auf html4 nicht besteht, wird es trotzdem funktionieren, weil alle Browser es akzeptieren, und am Ende ist das wirklich wichtig. – awe

0

einen Blick auf www.htmlref.com oder W3C haben für die verwendeten Attribute.

Andere als diese können Sie einfach Ihre eigenen hinzufügen, sie werden rendern und sie werden über Code zugänglich sein, zum Beispiel in C# können Sie auf eine Steuerattributsammlung zugreifen.

Control.Attributes ["MyCustomAttribute"] = "Hallo Welt";

0

gibt es rel und rev Attribute, die in Elementen mit einem href -Attribut funktionieren. Sie haben eine semantische Bedeutung, werden aber oft als Attribut zum Speichern zusätzlicher Informationen missbraucht.

+2

Also sollten wir diese Attribute auch missbrauchen? – Gumbo

1

Wenn Sie Daten für die Verwendung in Javascript speichern, können Sie auch etwas wie jQuerys Metadaten-Plugin verwenden. Grundsätzlich können Sie speichern Daten innerhalb des Elements class = "" -Attribut, etwa so:

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

Dann in javascript:

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

Andere Kits verwenden den Titel oder rel-Attribute Daten zu speichern. Obwohl dies eher validierungsfreundlich ist, ist es möglicherweise besser als die Verwendung von AnthonyWJones 'Antwort auf die Verwendung nicht standardmäßiger Attribute. Es wird die Validierung "brechen", aber wiederum gemäß Dojo, benutzerdefinierte Attribute sind perfekt gültige HTML, auch wenn sie nicht gegen eine DTD validieren.

Also nein - es gibt kein einziges gut akzeptiert spezifisches Attribut, wo Sie alle Daten ablegen können. Alle vorhandenen Attribute sind für bestimmte Verwendungszwecke bestimmt. Sie können jedoch entweder 1) eigene Attribute erstellen oder 2) ein vorhandenes Tag übernehmen, um es für Ihre Zwecke wiederzuverwenden. Ich wollte nur auf die Alternative hinweisen.

+0

hmm nette antwort, und ehrlich gesagt habe ich das verwendet, bevor ich letzten januar denke – lock