使用javascript / jQuery获取data- *属性列表
给定一个具有零个或多个data-*属性的任意HTML元素,如何检索数据的键值对列表。 例如: <div id='prod' data-id='10' data-cat='toy' data-cid='42'>blah</div> 我希望能够以编程方式检索此: { "id":10, "cat":"toy", "cid":42 } 使用jQuery(v1.4.3),$.data()如果事先知道键,则使用访问数据的单个位很简单,但是使用任意数据集如何做到这一点并不明显。 我正在寻找一种“简单的” jQuery解决方案(如果存在),但不介意采用较低级别的方法。我可以尝试解析,$('#prod').attributes但是缺少javascript-fu会让我失望。 更新 customdata可以满足我的需求。但是,仅将jQuery插件的一部分功能包括在内似乎太过分了。 盯着源代码可以帮助我修复自己的代码(并改进了javascript-fu)。 这是我想出的解决方案: function getDataAttributes(node) { var d = {}, re_dataAttr = /^data\-(.+)$/; $.each(node.get(0).attributes, function(index, attr) { if (re_dataAttr.test(attr.nodeName)) { var key = attr.nodeName.match(re_dataAttr)[1]; d[key] = attr.nodeValue; } }); return d; } 更新2 …