5

重複の可能性:
データのリストを取得-* javascript/jQueryを使用して属性

私はすべてこれに似ている一連のオブジェクトを持っています:

<a data-type="file" data-path="/some/path" data-size="849858">Link</a>

各データ属性を動的にプルする関数を作成したいので、「data-icon」などの属性を追加しても、関数は次のようなすべてのデータ属性の配列を返します。

{
    "type" : "file",
    "path" : "/some/path",
    ...
}
4

1 に答える 1

13

編集最初に提案された答えは、質問にある出力文字列から推測した JSON 文字列/オブジェクトが必要な場合でした。キーと値のペアを取得したいだけの場合は、データ属性のコレクションを繰り返すだけです。

ライブデモ

$.each($('a').data(), function(i, v) {
    alert('"' + i + '":"' + v + '",');
});

JSON文字列/オブジェクトが必要であるという前提で最初に提案された答え

データ属性のコレクションを使用してデータ属性のコレクションを反復処理することにより、データ属性のキーと値のペア オブジェクト (json オブジェクト) を作成data()できます。json 文字列を作成したら、$.parseJSON を使用して jSON オブジェクトを作成し、ループを使用してキーと値のペアを取得できます。

ライブデモ

strJson = "{"
$.each($('a').data(), function(i, v) {
    strJson += '"' + i + '":"' + v + '",';
});
strJson = strJson.substring(0, strJson.length - 1);
strJson += '}';
var jsonObject = $.parseJSON( strJson );
for (var key in jsonObject) 
    alert(key + " : " + jsonObject[key]);
于 2012-09-03T14:59:18.737 に答える