我正在使用jquery的.data()函数来缓存document.body对象上的一系列值。这个缓存是使用.each()函数动态完成的:
$('foo').each(function(){
var bar = $('foo').attr('id');
var myVal = $('foo').val();
$.data(document.body, 'docDepth-' + bar, myVal);
});
稍后我想要检索这组数据对。我的问题是,我不知道如何检索它们,因为(a)我不知道将有多少数据对附加到document.body,以及(b)我不知道所有可能的标签将用于数据对。
我需要做的是查看document.body上存储的数据对,找到那些标签包含字符串“docDepth”的数据对,然后将它们作为数组返回。我怎么能这样做?
答案 0 :(得分:0)
您可以使用var d = $('element').data();
它将返回整个数据对象,然后您可以迭代以查找所需的键值对。
for (var i in d)
{
var v = d[i];
console.log('key:', i, 'value:', v);
}
答案 1 :(得分:0)
如果您只是缓存,那么您可以直接使用自己的对象来降低成本,例如:
var cache = {};
$('foo').each(function(){
cache[this.id] = $(this).val();
});
因为我们只是为了这个对象,所以不需要前缀开销。然后为了迭代它们,请使用$.each()
for..in
循环,如下所示:
$.each(cache, function(key, value) {
//use key, value here
});