0

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" が含まれているものを見つけて、それらを配列として返すことです。どうやってやるの?

4

2 に答える 2

0

キャッシュしているだけの場合は、次のように、独自のオブジェクトを直接使用してはるかに安価に実行できます。

var cache = {};
$('foo').each(function(){
  cache[this.id] = $(this).val();
});

このためだけにオブジェクトを使用しているため、プレフィックスのオーバーヘッドは必要ありません。次に、後でそれらを反復処理するには、次のようfor..inにforのループを使用します。$.each()

$.each(cache, function(key, value) {
  //use key, value here
});
于 2010-11-11T17:49:54.423 に答える
0

を使用して、要素に保存されているすべてのデータを取得できます。var d = $('element').data();

データ オブジェクト全体が返されるため、必要なキーと値のペアを見つけるために繰り返し処理できます。

for (var i in d)
{
  var v = d[i];
  console.log('key:', i, 'value:', v);
}

http://api.jquery.com/data/

于 2010-11-11T17:39:29.243 に答える