我试图做的是迭代包含在父容器中的div集合。我的结构如下:
<div id='main'>
<div data-id='2'>
</div>
<div data-id='3'>
</div>
</div>
我的目标是获取每个data-id
的字段div
并创建一个数组集合。以前我使用select
从哪里获取可用选项的每个值,如下所示:
var available_services = $('#selected-service').find('option', this).map(function ()
{
return this.value;
}).get();
但现在我使用div集合而不是select。我如何迭代所有可用的div
?
答案 0 :(得分:4)
这应返回列表中的所有data-id
值:
var available_services = $('#main').find('div').map(function (item)
{
return item.attr('data-id');
});
我没有测试过这个,但我认为应该做这个工作。 (也许你需要调整一下)
答案 1 :(得分:3)
我相信这样做会:
var available_services = [];
$('#main div').each(function(){
available_services.push($(this).data( "id" ));
})
答案 2 :(得分:2)
这是最简单的方法:
$(document).ready(function() {
var myCollection = [];
$('#main div').each(function(){
var dataDiv = $(this).attr('data-id');
myCollection.push(dataDiv)
})
});
答案 3 :(得分:0)
试试这个:
(function(){
var main = $("#main");
var divs = $(main).find("div");
var arrId = divs.map(function(index, div){
return $(div).attr("data-id");
});
console.log(arrId);
})()
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id='main'>
<div data-id='2'>
</div>
<div data-id='3'>
</div>
</div>