Ich mache eine Seite, die eine Interaktion durch Javascript hat. Nur als Beispiel: Links, die eine AJAX-Anfrage senden, um den Inhalt von Artikeln abzurufen und diese Daten dann in einem div anzuzeigen. In diesem Beispiel benötige ich natürlich jeden Link, um eine zusätzliche Information zu speichern: die ID des Artikels. Die Art und Weise, wie ich damit umgegangen bin, war, diese Informationen in den href-Link zu setzen:
<a class="article" href="#5">
Ich benutze dann jQuery, um die a.article-Elemente zu finden und den entsprechenden Event-Handler anzuhängen. (Lassen Sie sich hier nicht zu sehr auf die Benutzerfreundlichkeit oder Semantik ein, es ist nur ein Beispiel)
Wie auch immer, diese Methode funktioniert, riecht aber ein bisschen und ist überhaupt nicht erweiterbar (was passiert, wenn die Klickfunktion mehr als einen Parameter hat? Was ist, wenn einige dieser Parameter optional sind?)
Die sofort offensichtliche Antwort war die Verwendung von Attributen für das Element. Ich meine, dafür sind sie da, oder? (So'ne Art).
<a articleid="5" href="link/for/non-js-users.html">
In meiner letzten Frage habe ich gefragt, ob diese Methode gültig ist, und es stellt sich heraus, dass meine eigene DTD nicht definiert ist (ich nicht), dann nein, sie ist nicht gültig oder zuverlässig. Eine häufige Antwort war, die Daten in das class
Attribut einzufügen (obwohl dies möglicherweise an meinem schlecht gewählten Beispiel lag), aber für mich riecht dies noch mehr. Ja, es ist technisch gültig, aber es ist keine großartige Lösung.
Eine andere Methode, die ich in der Vergangenheit verwendet hatte, bestand darin, tatsächlich JS zu generieren und es in die Seite eines <script>
Tags einzufügen , um eine Struktur zu erstellen, die dem Objekt zugeordnet wird.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Aber dies kann ein echter Schmerz im Hintern sein und ist im Allgemeinen nur sehr chaotisch.
Um auf die Frage zu kommen, wie speichern Sie beliebige Informationen für HTML-Tags ?