jQuery 循环遍历 HTML5 数据属性

标签 jquery arrays custom-data-attribute

Possible Duplicate:
Get list of data-* attributes using javascript / jQuery

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

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

我想创建一个函数来动态提取每个数据属性,因此,如果我添加“data-icon”之类的内容或任何其他数量的属性,该函数仍然返回所有数据属性的数组,例如:

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

最佳答案

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

<强> Live Demo

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

假设您需要 JSON 字符串/对象,最初建议的答案

您可以通过使用 data() 迭代数据属性集合来创建数据属性的键值对对象(json 对象),这将给出数据属性的集合。创建 json 字符串后,我们可以使用 $.parseJSON 来创建 jSON 对象,并使用循环从中获取键/值对。

<强> Live Demo

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]);

关于jQuery 循环遍历 HTML5 数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12249788/

相关文章:

JavaScript 或 jQuery 使用数据属性比较两个有序列表

Javascript,检查数组是否包含函数

javascript - 使用 ajax + jquery 的 after() 函数,现在等待图像加载

javascript - 选择和修改 DOM 元素

javascript - jquery获取子元素的attr

java - 从 Control 数组按类型获取 UI 元素?

java - 尝试求和时出错

javascript - 基于 jquery datepicker 数据属性的动态 Mindate

javascript - 添加数据属性值作为 inline-css "width"值

c# - 使用表单序列化的 JSON 对象发布未映射到 C# 对象