Kann ich ein benutzerdefiniertes Attribut zum HTML-Tag wie folgt hinzufügen: <tag myAttri="myVal" />
Kann ich dem HTML-Tag ein benutzerdefiniertes Attribut hinzufügen?
Antwort
Sie können Ihre DOCTYPE-Deklaration (dh DTD) ändern, um es zu ermöglichen, so dass die [XML] Dokument noch gültig ist:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
[
<!ATTLIST tag myAttri CDATA #IMPLIED>
]>
#IMPLIED
bedeutet es eine optionale Attribué ist, oder könnten Sie verwenden #REQUIRED
usw.
weitere Informationen hier:
Muss ich eine DTD-Datei erstellen oder einfach ATTLIST inline in HTML-Datei hinzufügen? – lovespring
setzen Sie einfach alles oben auf Ihrer HTML-Datei (vorausgesetzt, XHTML 1.0 Übergang ist in Ordnung) – carillonator
Vielleicht fehlt mir etwas, aber wenn Sie diesen Ansatz folgen, wird das> auf der gerenderten Webseite angezeigt. Das passiert mir in Firefox 3.6. Dieses Snippet von http://www.alistapart.com/articles/customdtd/ scheint dieses Verhalten zu überprüfen: "Wenn Sie die Beispieldateien für diesen Artikel herunterladen und die Datei internal.html überprüfen, können Sie dies selbst sehen. Leider Wenn Sie die Datei in einem Browser anzeigen, wird auf dem Bildschirm>]> angezeigt. Um diesen Fehler herum gibt es keinen Weg, daher ist dieser Ansatz richtig. " – Mike
Nein, dies wird die Validierung zu brechen.
In HTML 5 können/können Sie benutzerdefinierte Attribute hinzufügen. Etwas wie folgt aus:
<tag data-myAttri="myVal" />
aber ich interessiere mich nicht Validierung, ich will nur es könnte durch Javascript zugegriffen werden. – lovespring
Es wird natürlich funktionieren. Das Erstellen ungültiger Dokumente ist jedoch keine so gute Idee. –
Nun, technisch ist es nicht mehr HTML. Genauso könnten Sie eine Last von Binärdateien in der Mitte eines Tags hinzufügen - aber es wird kein HTML sein. – Draemon
Ja, Sie können, haben Sie es in der Frage selbst: <html myAttri="myVal"/>
.
Hängt davon ab, wie Sie HTML als definieren. Ich denke an HTML als eine Sprache, die auf SGML basiert, mit einer bestimmten Menge von Elementen und Attributen. XHTML ist eine Variante von XML mit einer bestimmten Menge von Elementen und Attributen, die HTML sehr ähnlich ist. Wenn Sie Ihre eigenen Attribute verwenden, ist es immer noch SGML von XML, aber nicht mehr HTML von XHTML meiner Meinung nach. –
Nehmen Sie es als eine Ad-hoc-Erweiterung, kein Standard im strengen Sinne, aber eine Art der Implementierung der Anforderung, dass es nicht Parsen fehlschlagen sollte, wenn es benutzerdefinierte Attribute enthält. – luvieere
DouweM: Natürlich gibt es immer die HTML-Serialisierung von HTML5, die weder SGML noch XML ist. – bcat
Sie können nach Belieben benutzerdefinierte Attribute zu Ihren Elementen hinzufügen. Aber das wird Ihr Dokument ungültig machen.
In HTML 5 haben Sie die Möglichkeit custom data attributes prefixed with data-
zu verwenden.
Denken Sie daran, "ungültig" bedeutet nichts. Die Seite wird zu 100% der Zeit gerendert. – jfar
Eigentlich "ungültig" hat sehr reale Auswirkungen. Z.B. Es kann Ihr Dokument in Quirkmodus-Rendering versetzen. Verwenden Sie in jedem Fall den HTML5 Doctype und Sie werden gültig sein. – brentonstrine
Es gibt eine gute Tabelle mit verschiedenen Doctypes und entsprechenden Browsermodi hier: https://hsivonen.fi/doctype/#handling. HTML5 Doctype schaltet alle Post-2001-Browser in den (Full) Standards-Modus um. XHTML Transitional und HTML 4 Transitional (vor allem ohne DTD) doctypes nicht :) –
Mit der Funktion jquery
data()
können Sie beliebige Daten mit dom-Elementen verknüpfen. Here's an example. !
Das ist golden. –
@TrevorWood und gebrochen (der Link). –
Sie Eigenschaften können fro m JavaScript.
document.getElementById("foo").myAttri = "myVal"
können Sie hinzufügen, aber dann muss man auch eine Zeile Javascript schreiben:
document.createElement('tag');
um sicherzustellen, dass alles an seinem Platz fallen. Ich meine IE :)
Dies wäre relevant, wenn die Der Tagname ist IE nicht bekannt. Hier ist das Problem ein benutzerdefiniertes Attribut, kein benutzerdefiniertes Tag. Das Wort "tag" in "
Bedeutet dies nicht auch, dass XHTML ungültig wird (es sei denn, es handelt sich um ein erkanntes Tag)? – Paul
element.getAttribute('key');
element.setAttribute('key', 'value');
Sie können etwas tun Sie den Wert von Javascript anstelle eines Attributs
<a href='#' class='click'>
<span style='display:none;'>value for javascript</span>some text
</a>
Ein weiterer Ansatz, der sauber ist und halten das Dokument gültig extrahieren möchten , besteht darin, die gewünschten Daten in einem anderen Tag zu verketten, z ID, dann benutze Split, um zu nehmen, was du willst, wenn du es willst.
<html>
<script>
function demonstrate(){
var x = document.getElementById("example data").querySelectorAll("input");
console.log(x);
for(i=0;i<x.length;i++){
var line_to_illustrate = x[i].id + ":" + document.getElementById (x[i].id).value;
//concatenated values
console.log("this is all together: " + line_to_illustrate);
//split values
var split_line_to_illustrate = line_to_illustrate.split(":");
for(j=0;j<split_line_to_illustrate.length;j++){
console.log("item " + j+ " is: " + split_line_to_illustrate[j]);
}
}
}
</script>
<body>
<div id="example data">
<!-- consider the id values representing a 'from-to' relationship -->
<input id="1:2" type="number" name="quantity" min="0" max="9" value="2">
<input id="1:4" type="number" name="quantity" min="0" max="9" value="1">
<input id="3:6" type="number" name="quantity" min="0" max="9" value="5">
</div>
<input type="button" name="" id="?" value="show me" onclick="demonstrate()"/>
</body>
</html>
In HTML5: ja: verwenden Sie die data- attribute.Hier
<ul>
<li data-animal-type="bird">Owl</li>
<li data-animal-type="fish">Salmon</li>
<li data-animal-type="spider">Tarantula</li>
</ul>
ist das Beispiel:
document.getElementsByTagName("html").foo="bar"
Hier ist ein weiteres Beispiel dafür, wie benutzerdefinierte Attribute in Body-Tag-Element:
document.getElementsByTagName('body')[0].dataset.attr1 = "foo";
document.getElementsByTagName('body')[0].dataset.attr2 = "bar";
Dann lesen Sie das Attribut von:
attr1 = document.getElementsByTagName('body')[0].dataset.attr1
attr2 = document.getElementsByTagName('body')[0].dataset.attr2
Sie können obigen Code in Konsole in DevTools, z.
var demo = document.getElementById("demo")
console.log(demo.dataset.myvar)
// or
alert(demo.dataset.myvar)
//this will show in console the value of myvar
<div id="demo" data-myvar="foo">anything</div>
Bitte fügen Sie eine kurze Erklärung zu Ihrer Antwort hinzu. –
- 1. wie ein benutzerdefiniertes Attribut x509 Zertifikate hinzufügen
- 2. Kann ich ein benutzerdefiniertes Attribut auf void-Methoden beschränken?
- 3. Kann ein benutzerdefiniertes Attribut andere Attribute ohne Vererbung implizieren?
- 4. asp.net mvc Hinzufügen zu dem AUTHORIZE-Attribut
- 5. Odoo - benutzerdefiniertes Feldattribut hinzufügen?
- 6. Wie kann ich ein Attribut dynamisch in Slim lang hinzufügen?
- 7. Wie übergebe ich ein benutzerdefiniertes Attribut an eine Funktion?
- 8. Thymeleaf - benutzerdefiniertes Attribut
- 9. Wie Emmet ein benutzerdefiniertes JSX-Attribut ohne Anführungszeichen generieren kann
- 10. jQuery kann kein benutzerdefiniertes Attribut finden
- 11. Kann ein C# -Attribut einen Parameter zu einer Methode hinzufügen?
- 12. C# benutzerdefiniertes veraltetes Attribut
- 13. Ein benutzerdefiniertes Attribut zum Festlegen, ob ein Textfeld editierbar ist
- 14. Wie kann man ein benutzerdefiniertes Icon in Twitter Bootstrap hinzufügen?
- 15. ASP.NET benutzerdefiniertes Profil serializeAs Attribut
- 16. ExtJS ein benutzerdefiniertes Ereignis zum Körper hinzufügen
- 17. Wie kann ich in ein Attribut umwandeln?
- 18. Wie kann ich ein benutzerdefiniertes Repository in Pom hinzufügen, während ich Nexus für das Proxing verwende?
- 19. Wie kann ich dem Ladepfad in Rails ein Dienstverzeichnis hinzufügen?
- 20. Kann ich dem UWP Xamarin-Projekt ein Symbolleistensymbol hinzufügen?
- 21. Wie erstelle ich ein benutzerdefiniertes Objekt aus dem serialisierten Formular?
- 22. Laravel 5.2 - Filterung auf ein benutzerdefiniertes Attribut und dann paginieren
- 23. Kann ich ein Stylesheet erhalten, um ein benutzerdefiniertes Tag auf einem Seitenelement zu erkennen?
- 24. Wie ein benutzerdefiniertes Attribut von Objektinstanz in C# bekommen
- 25. So holen Sie ein benutzerdefiniertes Attribut von Kinvey
- 26. Javascript: Hinzufügen von Attribut dynamisch zum <html /> Tag
- 27. Wie kann ich ein benutzerdefiniertes Feld in Magento bestellen?
- 28. Wie verwende ich ein benutzerdefiniertes IXmlSerializable als XmlAttribute?
- 29. In Fabric.js wie ändere ich die Objektklasse, so dass alle Unterklassen ein neues benutzerdefiniertes Attribut haben?
- 30. Wie erstelle ich ein benutzerdefiniertes Outlook-Objekt?
http://stackoverflow.com/questions/432174/how-to-store-arbitrary-data-for-some-html-tags –
und auch http : //stackoverflow.com/questions/209428/non-standard-attributes-on-html-tags-good-thing-badthing-your-thoughts –
danke, ich werde einen Blick darauf werfen. – lovespring