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


当前回答

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

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
   // ...
}

其他回答

使用jQuery访问和删除第n个元素的示例:

<html>
<head></head>
<body>
    <script type="text/javascript" 
    src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
    <script type="text/javascript">
      $(document).ready(function(){
        $('li:eq(1)').hide();
      });
    </script>
    <ol>
      <li>First</li>
      <li>Second</li>
      <li>Third</li>
    </ol>
</body>
</html>

当它运行时,有序列表中有两项显示First和Third。第二个藏起来了。

我想你可以用这个

$("ul li:nth-child(2)").append("<span> - 2nd!</span>");

它在每个匹配的ul中找到第二个li并记录下来。

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

$("div:eq(2)")

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

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

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

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

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

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
   // ...
}

如果你想在循环中获取特定的元素/节点或标签。

<p class="weekday" data-today="monday">Monday</p>
<p class="weekday" data-today="tuesday">Tuesday</p>
<p class="weekday" data-today="wednesday">Wednesday</p>
<p class="weekday" data-today="thursday">Thursday</p>

因此,从上面的代码循环执行,我们想要选择特定的字段,我们必须使用jQuery选择,只能选择期望元素从上面的循环,所以,代码将

$('.weekdays:eq(n)');

e.g.

$('.weekdays:eq(0)');

以及其他方法

$('.weekday').find('p').first('.weekdays').next()/last()/prev();

但是当HTML <标签>有唯一的类名时,第一个方法更有效。

注意:当目标元素或节点中没有类名时使用第二种方法。

更多信息请关注https://api.jquery.com/eq/