我试图将每个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]获取我的数组?
答案 0 :(得分:2)
因为在循环中,您需要使用当前元素,good_order
是一个引用多个元素的jQuery对象,在其上调用.data('id')
将始终返回data-id
的值该集合中的第一个元素。
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;