jQuery no devuelve el nuevo atributo de datos
Estoy intentando una tarea muy simple trabajando con data-attr y jQuery, verifique este ejemplo:
Margen:
<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);
});
Puedes probarlo aquí:http://jsfiddle.net/YsKJJ/16/
Por lo tanto, debe añadirse dentro de ladiv
el textoTesting - Testing 2
, pero imprimeTestingTesting
. En la consola, verifiqué si el attr se cambió en el objeto, y sí, tiene el nuevo valor- Testing 2
pero jQuery todavía devuelve el valor original :(
¿Alguna idea?
ACTUALIZAR:
Entonces, la razón de este comportamiento según jQuery docs:
Los atributos de datos se extraen la primera vez que se accede a la propiedad de datos y luego ya no se accede ni se muta (todos los valores de datos se almacenan internamente en jQuery).
Más información:jQuery Data vs Attr?