Javascript jquery-检索其标签包含给定字符串的.data()值
我正在使用jquery的.data()函数缓存document.body对象上的一系列值。此缓存是使用.each()函数动态完成的:Javascript jquery-检索其标签包含给定字符串的.data()值,javascript,jquery,data-caching,Javascript,Jquery,Data Caching,我正在使用jquery的.data()函数缓存document.body对象上的一系列值。此缓存是使用.each()函数动态完成的: $('foo').each(function(){ var bar = $('foo').attr('id'); var myVal = $('foo').val(); $.data(document.body, 'docDepth-' + bar, myVal); }); 稍后我想检索这组数据对。但是,我的问题是,我不知道如何检索它们,因为(a)
$('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”的数据对,然后将它们作为数组返回。我该怎么做呢?您可以使用
var d=$('element').data()获取存储在元素上的所有数据代码>
它将返回整个数据对象,然后您可以对其进行迭代以找到所需的键值对
for (var i in d)
{
var v = d[i];
console.log('key:', i, 'value:', v);
}
如果只是缓存,那么直接使用自己的对象可以节省很多成本,如下所示:
var cache = {};
$('foo').each(function(){
cache[this.id] = $(this).val();
});
$.each(cache, function(key, value) {
//use key, value here
});
因为我们在一个对象中只是为了这个,所以不需要前缀开销。然后,要在以后对其进行迭代,请在
循环中使用for..for,如下所示:
var cache = {};
$('foo').each(function(){
cache[this.id] = $(this).val();
});
$.each(cache, function(key, value) {
//use key, value here
});
伟大的正是我需要的。谢谢好的,我仍然不知道如何过滤d的内容,并且只选择键包含字符串的键值对。