jQuery não retorna o novo atributo de dados
Estou tentando uma tarefa muito simples trabalhando com data-attr e jQuery, confira este exemplo:
Marcação:
<div data-name="Testing"></div>
JS
$(function(){
var div = $('div');
$(div).append($(div).data('name'));
$(div).attr('data-name', ' - Testing 2');
$(div).append($(div).data('name'));
console.log(div);
});
Você pode testá-lo aqui:http://jsfiddle.net/YsKJJ/16/
Então, deve anexar dentro dodiv
o textoTesting - Testing 2
mas imprimeTestingTesting
. No console, verifiquei se o atributo attr foi alterado no objeto e, sim, o novo valor- Testing 2
mas jQuery ainda retorna o valor original :(
Qualquer ideia?
ATUALIZAR:
Então, a razão deste comportamento de acordo com documentos do jQuery:
Os atributos de dados são extraídos na primeira vez em que a propriedade de dados é acessada e, em seguida, não são mais acessados ou mutados (todos os valores de dados são armazenados internamente em jQuery).
Mais Informações:Dados do jQuery vs Attr?