Wie ein Tag, den ich verwenden kann, um einige notwendige Informationen zu speichern? Aber wird wirklich nicht benötigt oder vom HTML benutzt? Funktioniert wie das Tag-Attribut für Objekte in Visual Basic?Gibt es ein generisches Attribut für alle HTML-Elemente außer ID und Klasse?
Antwort
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");
Downvoter, bitte kommentieren? – AnthonyWJones
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 ...
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
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";
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.
hmm nette antwort, und ehrlich gesagt habe ich das verwendet, bevor ich letzten januar denke – lock
Können Sie benutzerdefinierte Attribute verwenden? –