n 번째 jQuery 요소를 얻는 방법


311

jQuery $("...").get(3)에서 세 번째 DOM 요소를 반환합니다. 3 번째 jQuery 요소를 반환하는 함수는 무엇입니까?

답변:


310

(짧은) 선택기 페이지를 먼저 찾아 보지 않겠습니까?

여기 있습니다 : :eq()연산자. 처럼 사용 get()되지만 jQuery 객체를 반환합니다.

또는 .eq()기능도 사용할 수 있습니다.


23
.eq()대신 대신 해야 :eq()합니까?
RubenGeert

15
예, .eq()OP의 질문에 더 적합합니다. :eq()는 문자열 매개 변수 내에서로 사용되는 $반면 .eq()기존 jQuery 객체의 메소드입니다.
mjswensen

55
내가 가서까지이 문제를 볼 필요가 맹세 마다 . 싱글 . 시간 .
ivarni 2016 년

3
@JoelWorsham 원하는 동작에 따라 다릅니다. $('select').find('option').eq(n)기본적으로 그룹화를 무시하고 모든 옵션을 전체적으로 얻습니다. 그룹별로 원하는 경우 다음과 같은 것이 필요합니다.$('select').find('optgroup').each(function() { $(this).find('option').eq(n)...; })
Dykam

4
"(짧은) 선택기 페이지를 먼저 탐색하지 않는 이유는 무엇입니까?" - "eq"는 이름이 매우 나쁘기 때문에 eq는 비교를 의미하기 때문에 정기적으로 그냥 건너 뜁니다 ..
mmlac

309

: eq 선택기를 사용할 수 있습니다 . 예를 들면 다음과 같습니다.

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

또는 eq (int) 함수 :

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

또한 인덱스는 0부터 시작합니다.


7
동의어로서, :nth()선택자와 혼동하지 않아도됩니다.:nth-child()
user123444555621

더 나은 답변과 사실 이후 3 년 동안 편집되지 않음 :)
Andrew

선택기 / 기능 사용 방법을 실제로 설명해 주셔서 감사합니다.
Joseph Rogers

49

jQuery 객체를 빌드하는 쿼리를 제어 할 수 있다면 :eq()

$("div:eq(2)")

제어 할 수없는 경우 (예 : 다른 함수 또는 다른 함수에서 전달 된 경우) .eq()

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

또는 세 번째, 네 번째 및 다섯 번째 요소와 같은 섹션을 원하면 .slice()

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

슬라이스를 찾고 있었지만 검색 방법을 잘 모르겠습니다. 원래 질문에 필요한 것 이상으로 감사드립니다.
Samik R

4
이 답변을 우연히 발견 한 사람들에게는 n 번째 자식 선택기가 1을 기반으로하고 : eq 또는 .eq ()가 0을 기반으로한다는 점에 도움이됩니다.
Sudhanshu Mishra

1
실제로 .eq()대신 사용해야 합니다 :eq(). 약간의 성능 향상.
Qwerty

13

나는 당신이 이것을 사용할 수 있다고 생각합니다

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

일치하는 각 ul에서 두 번째 li를 찾아서 기록합니다.


11

.eq ()-요소의 0 기반 위치를 나타내는 정수입니다.

전의:

간단한 목록이있는 페이지를 고려하십시오.

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


3

변수에 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로 만든 객체를 인덱스 배열로 처리하는 방법을 나타냅니다.


맞고 하나 더 유용한 힌트 : 행에 <select>요소 목록이 포함되어 있고 선택된 콤보 박스 요소를 원하면$(row).val();
Matt

2

귀하의 질문을 올바르게 이해하면 항상 get 함수를 다음과 같이 포장 할 수 있습니다.

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

3
이것은 단지 "어려운 길"이며 이것은 eq()무료입니다.
Caumons

1

예를 들어 특정 요소 / 노드 또는 태그를 루프로 가져 오려면

<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)');

예 :

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

다른 방법으로뿐만 아니라

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

그러나 첫 번째 방법은 더 효율적입니다 HTML <tag> 고유 한 클래스 이름이 입니다.

참고 : 두 번째 방법은 대상 요소 또는 노드에 클래스 이름이없는 경우에 사용됩니다.

자세한 내용은 https://api.jquery.com/eq/


0

선택기를 사용하여 반복하는 것은 의미가없는 것 같습니다.

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

0

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>

실행되면 순서 목록에 첫 번째와 세 번째로 표시되는 두 개의 항목이 있습니다. 두 번째는 숨겨져있었습니다.


PS : 카운트는 0부터 시작합니다. 첫 번째는 인덱스 0에 있고, 두 번째는 인덱스 1에 있습니다. ....
KNU

0
 $(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>

"$ (function () {"가을, 처음에 자동으로 실행되는 익명 함수를 만들었습니다. 내부에서 형제를 사용하여 3 개의 부모 div를 찾았습니다. 그런 다음 3 개의 부모 div를 모두 반복하고 모든 자식 길이의 길이를 확인합니다. 나는 부모 DIV의 마지막 DIV 여부가 식별 할 수있는 방법 지금은 매 3 주 부모 DIV의 마지막 DIV의 HTML을 경고하고있다..
산 제이 베르

의견에 정보를 제공하는 대신 답변을 편집 할 수 있습니다 . :)
T3 H40
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.