jQuery nie zwraca nowego atrybutu danych
Próbuję bardzo prostego zadania, pracującego z data-attr i jQuery, sprawdź ten przykład:
Narzut:
<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);
});
Możesz to przetestować tutaj:http://jsfiddle.net/YsKJJ/16/
Powinien więc dołączać się dodiv
tekstTesting - Testing 2
, ale drukujeTestingTesting
. W konsoli sprawdziłem, czy atrybut został zmieniony w obiekcie, i tak, ma nową wartość- Testing 2
ale jQuery nadal zwraca oryginalną wartość :(
Dowolny pomysł?
AKTUALIZACJA:
Powodem tego zachowania jest dokumentacja jQuery:
Atrybuty danych są pobierane przy pierwszym dostępie do właściwości danych, a następnie nie są już dostępne ani zmutowane (wszystkie wartości danych są następnie przechowywane wewnętrznie w jQuery).
Więcej informacji:jQuery Data vs Attr?