Je suis en train de faire une page qui a une certaine interaction fournie par javascript. Par exemple, des liens qui envoient une requête AJAX pour obtenir le contenu d'articles et qui affichent ensuite ces données dans un div. Évidemment, dans cet exemple, j'ai besoin que chaque lien stocke un élément d'information supplémentaire : l'identifiant de l'article. La façon dont j'ai géré cela dans le cas présent était de mettre cette information dans le lien href : ceci :
<a class="article" href="#5">
J'utilise ensuite jQuery pour trouver les éléments a.article et attacher le gestionnaire d'événement approprié. (ne vous attachez pas trop à la convivialité ou à la sémantique, il s'agit juste d'un exemple).
Bref, cette méthode fonctionne, mais elle odeurs un peu, et n'est pas du tout extensible (que se passe-t-il si la fonction de clic a plus d'un paramètre ? que se passe-t-il si certains de ces paramètres sont optionnels ?)
La réponse la plus évidente était d'utiliser des attributs sur l'élément. Je veux dire, c'est à ça qu'ils servent, non ? (En quelque sorte).
<a articleid="5" href="link/for/non-js-users.html">
Sur ma récente question J'ai demandé si cette méthode était valable, et il s'avère qu'à moins de définir ma propre DTD (ce que je ne fais pas), alors non, elle n'est ni valable ni fiable. Une réponse courante était de mettre les données dans le fichier class
(bien que cela puisse être dû à mon exemple mal choisi), mais pour moi, cela sent encore plus mauvais. Oui, c'est techniquement valable, mais ce n'est pas une bonne solution.
Une autre méthode que j'avais utilisée dans le passé consistait à générer du JS et à l'insérer dans la page dans un fichier de type <script>
créant ainsi une structure qui sera associée à l'objet.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Mais cela peut s'avérer très pénible à entretenir et c'est généralement très désordonné.
Donc, pour en venir à la question, Comment stocker des éléments d'information arbitraires pour les balises HTML ? ?
2 votes
Question connexe : stackoverflow.com/questions/209428/