javascript - 如何从列表中获取每个元素的数据属性

标签 javascript jquery attributes jquery-data

我有这个“列表”:

<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

Updated fiddle

关于javascript - 如何从列表中获取每个元素的数据属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24541995/

相关文章:

javascript - 同名变量声明

jquery - Bootstrap Accordion 错误 : collapse switch back to visible mode

javascript - 在javascript中获取自定义属性的值

javascript - 如何强制更新 HTML TextArea 元素?

javascript - angularjs firebase用户身份验证服务不与 View 通信

javascript - 如果我们不等待 promise 会发生什么

jquery - 如何正确地将 json 结果附加到选择选项值

jquery - Grafana 通过 AJAX 没有响应

python - 在给定特定索引的情况下,如何访问对象列表中的对象属性?

php - 在 php 中获取 xml 命名空间属性