--- title: HTMLElement.dataset slug: Web/API/HTMLElement/dataset translation_of: Web/API/HTMLOrForeignElement/dataset ---
La propiedad dataset
en {{domxref("HTMLElement")}} proporciona una interfaz lectura/escritura para obtener todos los atributos de datos personalizados (data-*
) de cada uno de los elementos. Está disponible el acceso en HTML y en el DOM. Dentro del map of DOMString, aparece una entrada por cada atributo de datos. Hay que tener en cuenta que la propiedad dataset
puede leerse, pero no modificarse directamente. En vez de eso, las escrituras deben ser realizadas a través de cada propiedad individual del dataset
, que representan a cada atributo correspondiente. Además un HTML data-
attribute y su correspondiente DOM dataset.
property no comparten el mismo nombre, pero son siempre similares:
data-
. Sólo puede estar formado por letras minúsculas, números y los caracteres: guión (-
), punto (.
), dos puntos (:
) y guión bajo (_
) -- NUNCA una letra mayúscula (A a Z).Adicionalmente, encontrarás una guía de como usar los atributos data de HTML en nuestro articulo Using data attributes.
dash-style
a camelCase
: Un atributo de datos personalizado se transforma en una clave para la entrada {{ domxref("DOMStringMap") }} con las siguientes reglas
data-
es eliminado (incluyendo el guión);U+002D
) seguido de un caracter ASCII que sea una letra en minuscula a
a la z
, el guión es removido y la letra se transforma en su contraparte en mayuscula;camelCase
a dash-style
: La conversión opuesta, mapea una clave en un nombre de atributo, usa las siguientes reglas:
a
a la z
(antes de la conversión);data-
;A
a la Z
se convierte en un guión seguido de se contraparte en minuscula;La restricción en las reglas anteriores aseguran que las dos conversiones sean inversas una a la otra.
Por ejemplo, el atributo nombrado data-abc-def
corresponde a la clave abcDef
.
element.dataset.keyname
element.dataset[keyname]
in
puede ser usado para checar si un atributo dado existe.null
siempre se convierte en el string "null".delete
.<div id="user" data-id="1234567890" data-user="johndoe" data-date-of-birth>John Doe</div>
const el = document.querySelector('#user'); // el.id == 'user' // el.dataset.id === '1234567890' // el.dataset.user === 'johndoe' // el.dataset.dateOfBirth === '' // set the data attribute el.dataset.dateOfBirth = '1960-10-03'; // Result: el.dataset.dateOfBirth === 1960-10-03 delete el.dataset.dateOfBirth; // Result: el.dataset.dateOfBirth === undefined // 'someDataAttr' in el.dataset === false el.dataset.someDataAttr = 'mydata'; // Result: 'someDataAttr' in el.dataset === true
Especificación | Estado | Comentario |
---|---|---|
{{SpecName('HTML WHATWG', "dom.html#dom-dataset", "HTMLElement.dataset")}} | {{Spec2('HTML WHATWG')}} | No change from latest snapshot, {{SpecName('HTML5.1')}} |
{{SpecName('HTML5.1', "dom.html#dom-dataset", "HTMLElement.dataset")}} | {{Spec2('HTML5.1')}} | Snapshot of {{SpecName('HTML WHATWG')}}, no change from {{SpecName('HTML5 W3C')}} |
{{SpecName('HTML5 W3C', "dom.html#dom-dataset", "HTMLElement.dataset")}} | {{Spec2('HTML5 W3C')}} | Snapshot of {{SpecName('HTML WHATWG')}}, initial definition. |
{{Compat("api.HTMLElement.dataset")}}
data-*
class of global attributes.