在jQuery中,$("…").get(3)返回第3个DOM元素。返回第三个jQuery元素的函数是什么?


当前回答

如果你可以控制构建jQuery对象的查询,请使用:eq()

$("div:eq(2)")

如果你无法控制它(例如,它是从另一个函数或其他东西传递的),那么使用.eq()

var $thirdElement = $jqObj.eq(2);

或者如果你想要它们的一部分(比如,第三、第四和第五个元素),使用.slice()

var $third4th5thElements = $jqObj.slice(2, 5);

其他回答

如果你可以控制构建jQuery对象的查询,请使用:eq()

$("div:eq(2)")

如果你无法控制它(例如,它是从另一个函数或其他东西传递的),那么使用.eq()

var $thirdElement = $jqObj.eq(2);

或者如果你想要它们的一部分(比如,第三、第四和第五个元素),使用.slice()

var $third4th5thElements = $jqObj.slice(2, 5);

如果你已经在一个变量中有jquery对象,你也可以把它当作一个普通的索引数组,而不使用jquery:

var all_rows = $("tr");
for(var i=0; i < all_rows.length; i++){
   var row = all_rows[i];
   //additionally, you can use it again in a jquery selector
   $(row).css("background-color","black");
}

虽然上面的例子在任何方面都没有用处,但它代表了如何将jquery创建的对象视为索引数组。

如果我正确理解你的问题,你总是可以像这样包装get函数:

var $someJqueryEl = $($('.myJqueryEls').get(3));

.eq() -表示元素从0开始的位置的整数。

Ex:

考虑一个页面上有一个简单的列表:

<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
</ul>

我们可以将此方法应用于列表项的集合:

$( "li" ).eq( 2 ).css( "background-color", "red" );

更多信息:.eq()

对于迭代来说,使用选择器似乎没有任何意义:

var some = $( '...' );

for( i = some.length -1; i>=0; --i )
{
   // Have to transform in a jquery object again:
   //
   var item = $( some[ i ] );

   // use item at will
   // ...
}