【问题标题】:How to get data attribute of each elements from the list [closed]如何从列表中获取每个元素的数据属性[关闭]
【发布时间】:2014-07-02 22:19:00
【问题描述】:

我有这个“清单”:

<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/

【问题讨论】:

  • 好吧,在您的演示中,您只是访问第一个元素的值。你对运行alert(_id[0].value)还有什么期待?
  • 如果我使用每种方法都这样做,我会得到相同的结果...
  • 那么你调用每个的方式可能是错误的,因为_id 对我来说看起来不错:jsfiddle.net/4DRxz/1
  • 好的,但是如何只获得这个值?
  • 这个问题似乎是题外话,因为它没有表现出 OP 描述的问题。

标签: javascript jquery attributes jquery-data


【解决方案1】:

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

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

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

Updated fiddle

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    • 2022-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多