无法获取具有数据属性的每个div的数据ID

时间:2015-10-06 06:38:45

标签: jquery html

我试图将每个id都放在特定div中每个div的data-id里面。结果,我得到[7,7,7,7],但我只有3个具有不同数据ID的div?

这是我的HTML:

<div id="activated_blocs">
  <div class="bloc-row" data-id="7">
  <div class="bloc-row" data-id="9">
  <div class="bloc-row" data-id="8">
</div>

这是我的jquery,它不起作用......

var good_order = $('#activated_blocs').find('.bloc-row');
    var test_array = [];
    $.each(good_order, function() {
        test_array.push(good_order.data('id'));
    });
    console.log(test_array);

如何用[7,9,8]获取我的数组?

1 个答案:

答案 0 :(得分:2)

因为在循环中,您需要使用当前元素,good_order是一个引用多个元素的jQuery对象,在其上调用.data('id')将始终返回data-id的值该集合中的第一个元素。

&#13;
&#13;
var good_order = $('#activated_blocs').find('.bloc-row');
var test_array = good_order.map(function() {
  return $(this).data('id')
}).get();
snippet.log(JSON.stringify(test_array));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<div id="activated_blocs">
  <div class="bloc-row" data-id="7"></div>
  <div class="bloc-row" data-id="9"></div>
  <div class="bloc-row" data-id="8"></div>
</div>
&#13;
&#13;
&#13;