2010-11-14 80 views
3
<div class="grid"> 
    <div class="box"> 
      <div class="a"></div> 
      <div class="b"></div> 
      <div class="c"></div> 
    </div> 
    <div class="box"> 
      <div class="a"></div> 
      <div class="b"></div> 
      <div class="c"></div> 
    </div> 
    <div class="box"> 
      <div class="a"></div> 
      <div class="b"></div> 
      <div class="c"></div> 
    </div> 
</div> 

當我執行如何在jQuery集合中選擇第n個jQuery對象?

var rootElement = $('.grid').find('.box'); 

rootElement包含的jQuery對象的集合。

如何訪問此集合中的特定jQuery對象?我不想使用.each(),因爲我不一定要遍歷整個集合。

我知道這有效,但這似乎很尷尬。

var index = 1; 
$(rootElement.get(index)).find('.a'); /* Use chaining to do more work */ 

是否有這樣做的更優雅的方式?謝謝。

+0

你可以做'rootElement的[N]' – jcolebrand 2010-11-14 03:54:58

+0

我試圖rootElement的[指數] .find( 'A'),我得到了一個JS錯誤。 rootElement [index]給了我DOM元素,而不是jQuery對象。 – Stephen 2010-11-14 03:59:24

+0

是的,它會。但是,當然,您可以使用'$(rootElement [n])'來獲取jQuery包裹的元素。 – jcolebrand 2010-11-14 04:42:01

回答

5

您可以使用eq

var rootElement = $('.grid').find('.box').eq(0); 
rootElement.find('.a'); /* Use chaining to do more work */ 
+1

+1雖然不需要包裝'rootElement',因爲它已經是一個jQuery對象。 :o) – user113716 2010-11-14 03:06:54

+1

謝謝.eq(索引)是我正在尋找的。 – Stephen 2010-11-14 04:00:31