0

给定以下标记,如何使用 jQuery 返回data-foo该类的所有值.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');
});
4

3 回答 3

3

怎么用.map:

var arr = $(".bar[data-foo]").map(function() {
    return $(this).data("foo");
}).get();
于 2013-10-03T15:10:41.590 回答
1

以下应该有效:

var arr = [];
$('#foobar-list .bar').each(function() {
    arr.push($(this).data('foo'));
});
于 2013-10-03T15:10:53.560 回答
0

删除循环内的 var - 您正在重新声明变量。

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

http://jsfiddle.net/QfSLE/

于 2013-10-03T15:11:43.360 回答