2014-07-04 184 views
-2

如何获取parent1中所有子节点(1,2,3等)的ID,并将它们与jQuery数组放在一个数组中。通过jquery获取div div内的div

正如信息,我有很多 “父母”(parent1,parent2等)

<div id="parent1"> 

    <div id="child1" class="child"> 
    <div id="baby1" class="baby">TEXT</div> 
    </div> 

    <div id="child2" class="child"> 
    <div id="baby2" class="baby">TEXT</div> 
    </div> 

    <div id="child3" class="child"> 
    <div id="baby3" class="baby">TEXT</div> 
    </div> 

</div> 

的这是我的代码:

var save_array = []; 
    $('#parent1').find("div",'.child').each(function(){ save_array.push(this.id); }); 

但是当我这样做,我得到也是“宝贝”。

回答

2

您可以使用.map()

var arr = $('#parent1').find("div.child").map(function() { 
    return this.id; 
}).get(); 
console.log(arr); //["child1", "child2", "child3"] 

DEMO

+0

它的工作原理!谢谢 - 如果孩子的例子被命名为“childXX”,如何排除孩子“”没有数字“ – Chak

+0

@Chak,'$('#parent1')。find(”div.child:not(#childXX)“)和'没有号码'我没有你 – Satpal

+0

child1,child2,如果它被命名为childXX - 它应该通过:) - 感谢您的解决方案。 – Chak

0

.find()会经历所有的后代。改为使用.children()

1

使用此:

var save_array = []; 
$('#parent1').children().each(function(){ 
    save_array.push(this.id); 
}); 
0

试试这个

var save_array = []; 

$("[id*='parent']").find("div.child").each(function(){ 

    save_array.push(this.id); 

}); 
0

我认为正确的语法是这样的:

$('#parent1').find("div.child").each(function(){ 
    save_array.push(this.id); 
});