¿Cómo obtener lo valores de los atributos data con el dataset API de JavaScript?

Los atributos data-* que fueron introducidos en HTML5, nos facilitan la definición de datos personalizados asociados directamente a los elementos DOM de forma estandarizada.


Con JavaScript podemos leer los valores de estos atributos data.*, así como jQuery nos ofrece su método .data(), JavaScript nos ofrece el API Dataset que nos permite obtener y establecer los valores de los atributos data-* de una forma muy sencilla.

Ejemplo HTML data.*

<div id="cardWeb" data-web="Estrada Web Group" data-type="Desarrollo Web, Xamarin, C#, MVC, JavaScript, jQuery" data-nivel ="100%">
    Información de Estrada Web Group
</div>

El atributo en el dataset elimina el prefijo data-, por ejemplo, tomemos los atributos data-* del ejemplo anterior. Esta es su correspondencia en el dataset:

data-web → web

data-type → type

data-nivel → nivel

Y se accederíamos a su valor de la siguiente manera:

// Obtenemos una referencia al elemento DIV
var webcard = document.getElementById("cardWeb ");
// En la propiedad dataset del elemento estarán todos los atributos data-*
var strWeb = webcard.dataset.web; //Resultado: Estrada Web Group
var strType = webcard.dataset.type; //Resultado: Desarrollo Web, Xamarin, C#, MVC, JavaScript, jQuery
var strNivel = webcard.dataset.nivel; //Resultado: 100%

Es decir, el webcard.dataset sería el siguiente objeto:

{
    web: "Estrada Web Group",
    type: "Desarrollo Web, Xamarin, C#, MVC, JavaScript, jQuery",
    nivel: "100%"
}

Para modificar los valores de los atributos data-* es muy simple, por ejemplo, cambiar data-nivel a “full”, es tan fácil como asignarle el nuevo valor:

// Asignamos un nuevo valor al elemento nivel del dataset,
// el cual hacía referencia al atributo data-nivel  
webcard.dataset.nivel  = "full";

Para eliminar un valor podríamos asignarle el valor null o un string vacío, pero si queremos eliminar realmente el atributo data-* hay que utilizar el operador delete.

delete webcard.dataset.nivel;

 

Artículos relacionados
0 Comentarios
Enviame un comentario