0

我有这个“清单”:

<div class="list">
    <div class="test" data-id="1"></div>
    <div class="test" data-id="2"></div>
    <div class="test" data-id="3"></div>
    <div class="test" data-id="4"></div>
    <div class="test" data-id="5"></div>
</div>

我需要获取data所有元素的属性,所以我这样做:

var _this = $('.list'),
    _el = _this.find('div');

var _id = $.map(_el, function(el) {
    return {name: 'offer-id', value: $(el).data('id')}
});

但我得到的只是第一个元素的属性......有什么问题?小提琴:http: //jsfiddle.net/4DRxz/

4

1 回答 1

1

根据 jQuery文档,map 函数将返回一个包含映射元素的数组。如果你需要每一个,你可以遍历它们。喜欢:

for(var i=0; i<_id.length; i++){
   // do stuff with _id[i].value here
}

$.each按照另一个答案的建议使用。

更新的小提琴

于 2014-07-02T22:29:40.510 回答