如何获取第 n 个 jQuery 元素

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1442925/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 11:27:48  来源:igfitidea点击:

How to get nth jQuery element

jquery

提问by Sam Lee

In jQuery, $("...").get(3)returns the 3rd DOM element. What is the function to return the 3rd jQuery element?

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

采纳答案by Dykam

Why not browse the (short) selectors page first?

为什么不先浏览(短)选择器页面?

Here it is: the :eq()operator. It is used just like get(), but it returns the jQuery object.

它是::eq()操作员。它的使用方式与 类似get(),但它返回 jQuery 对象。

Or you can use .eq()function too.

或者你也可以使用.eq()函数。

回答by CMS

You can use the :eqselector, for example:

您可以使用:eq选择器,例如:

$("td:eq(2)").css("color", "red"); // gets the third td element

Or the eq(int)function:

或者eq(int)函数:

$("td").eq(2).css("color", "red");

Also, remember that the indexes are zero-based.

另外,请记住索引是从零开始的。

回答by nickf

if you have control over the query which builds the jQuery object, use :eq()

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

$("div:eq(2)")

If you don't have control over it (for example, it's being passed from another function or something), then use .eq()

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

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

Or if you want a section of them (say, the third, fourth and fifth elements), use .slice()

或者,如果您想要其中的一部分(例如,第三、第四和第五个元素),请使用 .slice()

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

回答by JoenasE

I think you can use this

我想你可以用这个

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

It finds the second li in each matched ul and notes it.

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

回答by tilak

.eq() -An integer indicating the 0-based position of the element.

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

Ex:

前任:

Consider a page with a simple list on it:

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

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

We can apply this method to the set of list items:

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

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

For more information : .eq()

更多信息:.eq()

回答by Au.Merci

If you already have the jquery object in a variable, you can also just treat it as a normal indexed array, without the use of jquery:

如果您已经在变量中拥有 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");
}

Although the above example is not useful in any way, it is representing how you can treat objects created by jquery as indexed arrays.

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

回答by user1205577

If I understand your question correctly, you can always just wrap the get function like so:

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

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

回答by Vrushal Raut

If you want to fetch particular element/node or tag in loop for e.g.

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

<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>

So, from above code loop is executed and we want particular field to select for that we have to use jQuery selection that can select only expecting element from above loop so, code will be

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

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

e.g.

例如

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

as well as by other method

以及通过其他方法

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

but first method is more efficient when HTML <tag>has unique class name.

但是当HTML <tag>具有唯一的类名时,第一种方法更有效。

NOTE:Second method is use when their is no class name in target element or node.

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

for more follow https://api.jquery.com/eq/

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

回答by Sanjay Verma

 $(function(){
            $(document).find('div').siblings().each(function(){
                var obj = $(this);
                obj.find('div').each(function(){
                    var obj1 = $(this);
                    if(!obj1.children().length > 0){
                        alert(obj1.html());
                    }
                });

            });
        });

<div id="2">
    <div>
        <div>
            <div>XYZ Pvt. Ltd.</div>
        </div>
    </div>
</div>
<div id="3">
    <div>
        <div>
            <div>ABC Pvt Ltd.</div>
        </div>
    </div>
</div>

回答by Eric Leschinski

Live Example to access and remove the Nth element with jQuery:

使用 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>

When it runs, there are two items in the ordered list that show, First, and Third. The second was hidden.

当它运行时,有序列表中有两个项目显示,第一和第三。第二个是隐藏的。