jQuery $ (this) .data () gibt alte Werte zurück

8

Ich habe den folgenden Code:

%Vor%

Ich setze einen Haltepunkt in die 3. Zeile und gebe folgendes in die Konsole ein:

%Vor%

Wie Sie sehen, ist data-color des tatsächlichen Elements #ffff00 . Die Methode .data() von jQuery gibt jedoch #9900ff zurück, wobei der Wert des data-color des Elements war, aber geändert wurde (und mit dem Haltepunkt kann ich sehen, dass es sich bereits geändert hat) ).

    
Mirror318 03.08.2016, 03:11
quelle

1 Antwort

19

jQuery liest Datenattribute nur mit .data durch - das heißt, das Datenattribut wird nur überprüft Beim ersten Zugriff wird darauf zugegriffen (und niemals, wenn der erste Zugriff eine Zuweisung ist).

Intern verwaltet jQuery seinen eigenen Datencache, der ansonsten keine Beziehung zu Datenattributen hat. Dieser interne Cache wird durch die DOM-Datenattribute beim ersten Zugriff eines bestimmten Schlüssels ausgelöst.

Wenn das Ziel immer darin besteht, die DOM-Attribute zu lesen und / oder zu verändern, verwenden Sie stattdessen die Methode .attr .

Die relevanten Teile von Ссылка sind unten aufgeführt.

%Vor%

Siehe auch:

user2864740 03.08.2016, 03:21
quelle

Tags und Links