jQuery循环遍历HTML5数据属性

Flu*_*yte 5 arrays jquery custom-data-attribute

可能重复:
使用javascript/jQuery获取data-*属性列表

我有一系列看起来与此类似的对象:

<a data-type="file" data-path="/some/path" data-size="849858">Link</a>
Run Code Online (Sandbox Code Playgroud)

我想创建一个动态拉动每个数据属性的函数,所以如果我添加类似"data-icon"或任何其他数量的属性,函数仍会返回所有数据属性的数组,如:

{
    "type" : "file",
    "path" : "/some/path",
    ...
}
Run Code Online (Sandbox Code Playgroud)

Adi*_*dil 11

编辑最初建议的答案是,如果你想要JSON字符串/对象,我用你在问题中输出的字符串推断出来.如果您只想获取键/值对,则可以简单地迭代数据属性集合.

现场演示

$.each($('a').data(), function(i, v) {
    alert('"' + i + '":"' + v + '",');
});
Run Code Online (Sandbox Code Playgroud)

最初建议回答假设你想要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]);
Run Code Online (Sandbox Code Playgroud)