2016-10-18 1 views
-1

Ich habe ein Problem oder möglicherweise ein erwartetes Ergebnis mit JQuery .data() -Methode. Ich bin mir nicht sicher, warum bei der Verwendung des Elementselektors die Datenwerte nach dem Ausführen der Datenmethode nicht aktualisiert werden. Sehen Sie den Screenshot für ein Beispiel, worüber ich rede.Warum aktualisiert jQuery.data() das Element nicht

enter image description here

Im nicht sicher, warum, wenn die Daten mit (Schlüssel, Wert) Methode, aktualisiert sie die Elemente Daten mit dem erwarteten Ausgang. Aber warum ist es nicht aktualisiert die Werte html Attribut? Mein Wissen in Javascript ist immer noch sehr begrenzt, aber ich würde gerne wissen, was das ist und ob ich das erwarten sollte.

+1

, weil es nicht angenommen hat. Dies ist in der Dokumentation abgedeckt. –

Antwort

1

jQuery liest alle data-attributes auf Pageload. Es behandelt dann Änderungen nur durch die .data()-Funktion in seinem Speicher.

das „echte“ HTML-Attribut zu aktualisieren, müssen Sie die Inhalte wie so manipulieren:

$('.selected a span:eq(3)').attr('data-value', 'newValue'); 
+1

Beachten Sie jedoch, dass dies nicht ändert, was bereits in jQuerys .data() gespeichert ist. –

+1

Nein, Sie müssten dazu sowohl das Attribut als auch die .data() -Datei von jQuery ändern. – Dario

+1

(zu @ KevinBs 100% korrektem Kommentar hinzufügen) ... außer wenn Sie ein * new * 'data-' Attribut definieren, das nicht von '.data()' gesetzt wurde, da 'data- *' Werte sind Wird als Standard verwendet, wenn für einige Schlüssel kein '.data()' gesetzt wurde. – apsillers

Verwandte Themen