2010-11-14 30 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