jQuery gibt das neue Datenattribut nicht zurück
Ich versuche eine sehr einfache Aufgabe, die mit data-attr und jQuery arbeitet. Überprüfen Sie dieses Beispiel:
Markup:
<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);
});
Sie können es hier testen:http://jsfiddle.net/YsKJJ/16/
Also sollte es innerhalb der anhängendiv
der TextTesting - Testing 2
, druckt aberTestingTesting
. In der Konsole habe ich überprüft, ob das Attribut im Objekt geändert wurde, und ja, hat den neuen Wert- Testing 2
aber jQuery gibt immer noch den ursprünglichen Wert zurück :(
Irgendeine Idee?
AKTUALISIEREN:
Der Grund für dieses Verhalten laut jQuery docs:
Die Datenattribute werden beim ersten Zugriff auf die Dateneigenschaft abgerufen und dann nicht mehr abgerufen oder mutiert (alle Datenwerte werden dann intern in jQuery gespeichert).
Mehr Informationen:jQuery Data vs Attr?