SwiftHTML & CSSSolidityDesenvolvimento de JogosSolana/Rust
13.02.2025

Atualizando Atributos de Dados em HTML com jQuery: data vs attr

Resposta Rápida

Atributos de dados em HTML são adicionados usando a notação data-*="valor". Por exemplo:

<div data-user-id="12345"></div> <!-- Identificador exclusivo para o usuário. Pode ser o seu, quem sabe? 😁 -->

Para acessar esses atributos em JavaScript, a sintaxe element.dataset.* é utilizada:

let userId = document.querySelector('div').dataset.userId; // E aí está, userId em suas mãos.

Para alterar um atributo de dados em HTML usando jQuery, você pode usar o método .attr():

$('#mydiv').attr('data-myval', '60'); // E assim, myVal instantaneamente se torna 60.

Maneira Simples com JavaScript

Para adicionar atributos data-* via jQuery, o método .attr() é recomendado:

$('#dynamicElement').attr('data-role', 'button'); // E assim, você se torna um botão. Como mudanças rápidas acontecem!

Realizar essa operação usando JavaScript puro aplica a propriedade dataset:

document.getElementById('dynamicElement').dataset.role = 'button'; // E agora você também é um botão!

Não se esqueça de seguir as convenções de nomenclatura: atributos data-* são convertidos para camelCase na propriedade dataset.

Visualização

Imagine trabalhar com atributos de dados em elementos HTML como o processo de decorar artisticamente uma grande tela:

<canvas data-color="blue" data-size="large"></canvas> <!-- Quem disse que telas não podem ser azuis e grandes? 🎨 -->

Cada atributo de dados representa um ícone único:

Tela:      [🖼]
Ícones: data-color ➡️ [🌈], data-size ➡️ [📏]

E aqui sobrepomos os ícones sobre a tela:

Antes: [🖼]
Depois: [🖼🌈📏] <!-- Veja, uma obra-prima está diante de você! 🖼🌈📏 -->

Assim, o elemento HTML se transforma em uma peça única de arte com seus próprios indicadores de dados únicos!

Básicos: Sincronização entre DOM e jQuery

Uma interação coerente entre o DOM e o cache interno do jQuery ao usar atributos de dados requer sincronização:

$('#mydiv').data('myval', 20) // O cache é atualizado, mas o HTML fica confuso: hum, o que? 🤔
$('#mydiv').attr('data-myval', 20) // O HTML é atualizado. Voilà, agora eu entendi! 🙌

Combinar ambos os métodos fica assim:

$('#mydiv').data('myval', 20).attr('data-myval', 20); // Isso é trabalho em equipe! 🤝

Prática: Obtendo e Removendo Atributos de Dados

Para recuperar o valor de um atributo de dados em jQuery, o método .data() é usado:

let myVal = $('#mydiv').data('myval'); // E myVal está de volta! 🎩🐇

Para remover o atributo de dados, os seguintes métodos podem ser utilizados:

Em JavaScript:

delete element.dataset.myval; // Adeus, MyVal, sempre nos lembraremos de você...
element.removeAttribute('data-myval'); // Outra forma de dizer "adeus"

No contexto do jQuery, a ajuda é o .removeAttr():

$('#myElement').removeAttr('data-myval'); // MyVal, é hora de se despedir! 👉

Jornada pelo Desconhecido: Conflitos de Nomes

Conflitos de nomes surgem subitamente como surpresas indesejadas. Em jQuery, evite nomes que começam com um sublinhado — eles são reservados para uso interno 🥳:

$('#mydiv').data('_myval', 20); // Cuidado ao entrar na zona VIP 😉

JavaScript Puro ou jQuery? A Escolha é Sua

A escolha entre o dataset em JavaScript puro e o jQuery é sua. Se você quer se manter na moda e acompanhar as últimas tecnologias, o dataset é perfeito para você. Precisa de conveniência extra? Vá de jQuery!

Recursos Úteis

  1. MDN Web Docs — uma fonte valiosa de conhecimento sobre tecnologias da web. Piratas do código, rumo ao mar! 🏴‍☠️
  2. Padrões da Web | W3C — para sempre se manter atualizado sobre os padrões web atuais. Mantenha-se ligado!
  3. CSS-Tricks — aprenda como adicionar magia ao seu CSS. 🪄
  4. Stack Overflow — o centro de comando para desenvolvedores em todo o mundo!
  5. Can I use... — seu guia prático para compatibilidade entre navegadores. Todos somos diferentes, certo? 🤷
  6. Smashing Magazine — uma fonte de insights modernos no mundo do desenvolvimento e design web.

Video

Did you like this article? Rate it from 1 to 5:

Thank you for voting!