Estoy haciendo una página que tiene alguna interacción proporcionada por javascript. Solo como un ejemplo: enlaces que envían una solicitud AJAX para obtener el contenido de los artículos y luego mostrar esos datos en un div. Obviamente, en este ejemplo, necesito que cada enlace almacene un bit adicional de información: la identificación del artículo. La forma en que lo he estado manejando en caso fue poner esa información en el enlace href esto:
<a class="article" href="#5">
Luego uso jQuery para encontrar los elementos a.article y adjuntar el controlador de eventos apropiado. (no se obsesione con la usabilidad o la semántica aquí, es solo un ejemplo)
De todos modos, este método funciona, pero huele un poco y no es extensible en absoluto (¿qué sucede si la función de clic tiene más de un parámetro? ¿Qué pasa si algunos de esos parámetros son opcionales?)
La respuesta inmediatamente obvia fue usar atributos en el elemento. Quiero decir, para eso están, ¿verdad? (Mas o menos).
<a articleid="5" href="link/for/non-js-users.html">
En mi pregunta reciente , pregunté si este método era válido, y resulta que, aparte de definir mi propio DTD (no lo hago), entonces no, no es válido ni confiable. Una respuesta común fue poner los datos en el class
atributo (aunque podría haber sido por mi ejemplo mal elegido), pero para mí, esto huele aún más. Sí, es técnicamente válido, pero no es una gran solución.
Otro método que utilicé en el pasado era generar algunos JS e insertarlos en la página en una <script>
etiqueta, creando una estructura que se asociaría con el objeto.
var myData = {
link0 : {
articleId : 5,
target : '#showMessage'
// etc...
},
link1 : {
articleId : 13
}
};
<a href="..." id="link0">
Pero esto puede ser realmente difícil de mantener y, en general, es muy complicado.
Entonces, para llegar a la pregunta, ¿cómo almacena información arbitraria para etiquetas HTML ?