【发布时间】:2014-03-02 12:30:32
【问题描述】:
我想使用 jQuery 的data() api 来检索元素的所有数据属性。但是这个 api 的缓存特性真的很烦人。有时我需要在 javascript 中更改元素的一些数据属性,但 data() api 总是返回每个数据属性的初始值。所以我必须使用attr() 来访问元素的每个数据属性以获取其最新值。有什么办法可以克服这个缓存问题,让data() 每次调用它时总是返回最新值?
【问题讨论】:
-
这不是缓存的东西,
data()在内部存储数据并且不会更改数据属性,如果您出于某种原因必须更改属性,您应该使用attr(),但如果您'重新使用data()来设置和获取数据,这应该不是问题,因为您将获得正确的数据。 -
“有时我需要在 javascript 中更改元素的一些数据属性” - 为什么?如果您需要在页面加载后针对元素存储数据,您可以使用
.data('key','value')。这不会将数据存储为属性,但那又如何? -
@nnnnnn 每种客户端模板语言都会构建 DOM,其中可能包含数据属性,而 jQuery 很可能不会这样做。
标签: javascript jquery html custom-data-attribute