2014-07-04 141 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); 
});