Quiero almacenar Id. Del lado del servidor de elementos dentro de un atributo definido en las etiquetas <li>
, de modo que pueda recuperarlos dentro de los métodos JS cuando haya un evento de clic en ellos.
¿Hay algún atributo que pueda usar para almacenar este tipo de datos?
Intenté poner identificadores del lado del servidor de elementos en el atributo id
de las etiquetas <li>
pero no permite identificadores que comiencen con dígitos !
3 respuestas
HTML5 presenta los atributos data-
que pueden ser muy útiles en casos como este.
<li data-something="test">...</li>
Luego, en JavaScript, puede buscar usando:
elem.getAttribute('data-something');
O (no es compatible con IE):
elem.dataset.something;
Si he entendido su problema correctamente, entonces no debería haber un problema al usar el atributo id
, a menos que, por supuesto, ya lo esté usando para otro propósito.
La spec muestra los atributos válidos para {{X0} } elementos:
id
, class
, lang
, dir
, title
, style
y un montón de atributos de controlador de eventos (onclick
y similares).
En teoría, podría usar casi cualquiera de ellos para almacenar sus datos, pero id
sería mi opción preferida. Sin embargo, es importante recordar que los valores de atributo id
tienen que comenzar con una letra (a menos que esté usando el doctype mencionado a continuación, pero en ese caso sería mejor usar el método siguiente de todos modos).
Como otros han mencionado, si está utilizando un doctype <!DOCTYPE html>
, puede usar el nuevo data-*
atributos que están destinados para este uso exacto.
En general, debe usar los atributos data-*
.
<li data-myInformation="123">This is item 123</li>
Estos se pueden recuperar fácilmente, y los marcos populares como jQuery admiten un fácil acceso a estos atributos con un método element.data("myInformation")
.
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.