相关疑难解决方法(0)

For-each在JavaScript中的数组?

如何使用JavaScript循环遍历数组中的所有条目?

我以为它是这样的:

forEach(instance in theArray)
Run Code Online (Sandbox Code Playgroud)

theArray我的阵列在哪里,但这似乎是不正确的.

javascript arrays iteration foreach loops

4448
推荐指数
33
解决办法
392万
查看次数

使用javascript/jQuery获取data-*属性列表

给定具有零个或多个data-*属性的任意HTML元素,如何检索数据的键值对列表.

如上:

<div id='prod' data-id='10' data-cat='toy' data-cid='42'>blah</div>
Run Code Online (Sandbox Code Playgroud)

我希望能够以编程方式检索此:

{ "id":10, "cat":"toy", "cid":42 }
Run Code Online (Sandbox Code Playgroud)

使用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;
}
Run Code Online (Sandbox Code Playgroud)

更新2

正如在接受的答案中所证明的那样,使用jQuery(> = 1.4.4)解决方案是微不足道的.$('#prod').data()将返回所需的数据字典.

javascript jquery html5 attributes

145
推荐指数
4
解决办法
11万
查看次数

标签 统计

javascript ×2

arrays ×1

attributes ×1

foreach ×1

html5 ×1

iteration ×1

jquery ×1

loops ×1