2015-10-06 36 views
1

我想获取每个ID在每个div的数据id在特定的div。结果,我得到[7,7,7,7]但我只有3个不同的数据ID的div?无法获得data-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]

回答

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));
<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>

+0

你说得对,我完全忘记了$(本)。谢谢! –