Side navigation
#14587 closed bug (notabug)
Opened November 28, 2013 11:00PM UTC
Closed December 02, 2013 03:48PM UTC
Last modified December 02, 2013 03:49PM UTC
DOM attributes aren't refetched during el.removeData().data()
Reported by: | rbut | Owned by: | |
---|---|---|---|
Priority: | undecided | Milestone: | None |
Component: | unfiled | Version: | 1.10.2 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
When calling .removeData() and subsequently .data() one would expect from the documentation that the result of .data() would contain the current data-* attributes from the DOM.
Instead the result of .data() is an empty dictionary!
I have a JSfiddle showing the issue:
The workaround for now is to call the following on each element after .removeData() and before .data():
jQuery._data(this, "parsedAttrs", false);
It seems the private parsedAttrs data isn't being cleared in removeData().
Thank you.
This seems like expected behavior. The docs state:
Once they have been accessed, they will not accessed again. Besides, when dealing with data-* attributes, I'm inclined to recommend
.attr()
at this point.