如何从一个类中获取每个元素的数据变量?

时间:2013-10-03 15:08:47

标签: javascript jquery each jquery-data

鉴于以下标记,如何使用类data-foo向jQuery返回所有.bar值?

<ul id="foobar-list">
    <li data-foo="1">Alpha</li>
    <li data-foo="2" class="bar">Beta</li>
    <li data-foo="3" class="bar">Gamma</li>
    <li data-foo="4">Delta</li>
</ul>

到目前为止,这是我的进展:

var arr = [];
$('#foobar-list .bar').each(function() {
    var arr[] = $(this).data('foo');
});

3 个答案:

答案 0 :(得分:3)

如何使用.map:

var arr = $(".bar[data-foo]").map(function() {
    return $(this).data("foo");
}).get();

答案 1 :(得分:1)

以下内容应该有效:

var arr = [];
$('#foobar-list .bar').each(function() {
    arr.push($(this).data('foo'));
});

答案 2 :(得分:0)

删除循环中的var - 你要重新声明变量。

var arr = [];
$('#foobar-list .bar').each(function(index) {
    arr[index] = $(this).data('foo');
});

http://jsfiddle.net/QfSLE/