jQuery .each来获得孩子的.attr

时间:2013-12-05 06:50:56

标签: jquery

所以,我有以下div <div id="selected"></div>。我将元素<div class="item" id="someID">blah</div>添加到#selected。在某些时候,我运行以下内容:

var ids = [];
$('#selected').each(function(){
    ids.push( $(this).attr('id') );
});

但我一无所获。在那里工作的唯一命令是$(this).html()。没有别的办法。为什么???

2 个答案:

答案 0 :(得分:1)

ID是唯一的,因此请勿使用.each()

您希望获得身份selected的元素的子项,因此请使用$('#selected').children()

尝试.map()

var ids = $('#selected').children().map(function(){
    return  this.id;
}).get();

fiddle Demo

答案 1 :(得分:0)

你想要

var ids = [];
$('#selected div').each(function(){ //descendent selector added
    ids.push( $(this).attr('id') );
});

您的代码无效,因为$('#selected')只返回一个节点,因为只有一个节点具有该ID(应该是,id应该是唯一的)