2012-04-10 63 views
6

我有一個ID爲content的div,我想獲得第一級div元素的id,例如。 box1box2box3。如何才能做到這一點 ?如何獲得只有一級分區?

<div id="content"> 
    <div id="box1" class="box1class"> 
     <div>...</div> 
    </div> 
    <div id="box2" class="box1class"> 
     <div>...</div> 
    </div> 
    <div id="box3" class="box1class"> 
     <div>...</div> 
    </div> 
</div> 
+0

[只選擇第一級別的元素,沒有使用相同的元素名稱的子元素(可能重複http://stackoverflow.com/問題/ 2604463 /只選擇第一級元素非子元素與同樣元素納姆) – Curt 2012-04-10 11:06:10

+1

爲什麼你需要ID?請告訴我這不是你可以說'$('#'+ id)' – Sorpigal 2012-04-10 11:07:04

+0

@Sorpigal我不會感到驚訝。用jQuery編寫的冗餘代碼的數量是令人難以置信的...... – 2012-04-10 11:12:12

回答

6

使用>孩子seelctor。

var ids = []; 
$("#content > div").each(function() { 
    ids.push(this.id); 
}); 

您可以通過使用map()進一步縮短這個:

var ids = $("#content > div").map(function() { 
    return this.id; 
}).get(); 
+0

[快速測試案例](http://jsfiddle.net/6RB9y/):) – 2012-04-10 11:07:12

+1

Thor Rory,誤解了這個問題:-P刪除了我的愚蠢的評論:) – Cody 2016-07-06 16:50:10

1

用途:

$("#content > div").each(function() { 
    var divId = this.id; 
}); 
+3

這是誤導性的答案。 $(「#content> div」)。attr(「id」)只獲得第一個div的id,不是全部。 – 2012-04-10 11:09:04

+0

@Chcuk諾里斯:更正 – kgiannakakis 2012-04-10 11:15:57

+0

什麼會返回這個? – 2012-04-10 11:28:38

5
$("#content > div") 

篩選。你可以得到div的數組像這樣

var array = $("#content > div").map(function(){ 
     return this.id; 
    }).get(); 

看到的jsfiddle http://jsfiddle.net/DsyzV/

+0

感謝查克:) – user1184100 2012-04-10 11:24:59