我有这个“列表”:
<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')}
});
但我得到的只是第一个元素的属性...出了什么问题? fiddle :http://jsfiddle.net/4DRxz/
最佳答案
根据 jQuery documentation ,map 函数将返回一个包含映射元素的数组。如果您需要每一项,您可以迭代它们。 喜欢:
for(var i=0; i<_id.length; i++){
// do stuff with _id[i].value here
}
或者按照另一个答案的建议使用$.each
。
关于javascript - 如何从列表中获取每个元素的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24541995/