jQuery에서 마지막 자식 요소를 선택하는 방법은 무엇입니까?


92

jQuery에서 마지막 자식 요소를 선택하는 방법은 무엇입니까?

그 후손이 아니라 막내 만.

답변:


133

다음과 같이 할 수도 있습니다.

<ul id="example">
    <li>First</li>
    <li>Second</li>
    <li>Third</li>
    <li>Fourth</li>
</ul>

// possibility 1
$('#example li:last').val();
// possibility 2
$('#example').children().last()
// possibility 3
$('#example li:last-child').val();

:마지막

.children (). last ()

:막내


4
나는 생각하지 않는다 children().last():last-child동일합니다. 이 예에서 - 예,하지만 ... (= "예"클래스) 두 개의 목록이 있다고 가정하고 두 목록에서 마지막 요소를 선택하려고
alekwisnia

@alekwisnia는 아래 내 예를 참조하십시오.
Philip

1
어느 쪽이 가장 빠릅니까?
Vic

@Vic 정확한 답을 줄 수는 없지만 옵션 3은 논리적입니다. 옵션 2는를 사용하여 DOM으로 두 번 점프하기 때문 children()입니다. 옵션 1은 한 번 수행하지만 사용자 지정 / jQuery 의사 선택기가 :last있고 :last-child이미 꽤 오래 왔으며 결과를 얻는 데 가장 빠르고 계산 시간이 더 적게 소요되는 것 같습니다.
요람 드 랑겐

48

성능 :

$('#example').children().last()

또는 위에서 언급 한 특정 클래스의 마지막 자녀를 원하는 경우.

$('#example').children('.test').last()

또는 특정 클래스가있는 특정 하위 요소

$('#example').children('li.test').last()


2

2019 년 ...

jQuery 3.4.0은 : first, : last, : eq, : even, : odd, : lt, : gt 및 : nth를 지원하지 않습니다. Sizzle을 제거 할 때 querySelectorAll을 둘러싼 작은 래퍼로 대체 할 것이며 더 큰 선택기 엔진없이 이러한 선택기를 다시 구현하는 것은 거의 불가능합니다.

우리는이 절충이 그만한 가치가 있다고 생각합니다. .first, .last 및 .eq와 같은 위치 지정 방법은 계속 지원할 것입니다. 위치 선택기로 수행 할 수있는 모든 작업은 대신 위치 방법으로 수행 할 수 있습니다. 어쨌든 그들은 더 잘 수행합니다.

https://blog.jquery.com/2019/04/10/jquery-3-4-0-released/

이제를 사용해야합니다 .first()..last() 대신 (또는 jQuery 없음).


1

마지막 자식을 선택하고 요소 유형을 구체적으로 지정해야하는 경우 선택기를 사용할 수 있습니다. 마지막

다음은 예입니다.

$("div p:last-of-type").css("border", "3px solid red");
$("div span:last-of-type").css("border", "3px solid red");

<div id="example">
            <p>This is paragraph 1</p>
            <p>This is paragraph 2</p>
            <span>This is paragraph 3</span>
            <span>This is paragraph 4</span>
            <p>This is paragraph 5</p>
        </div>

위의 예에서 단락 5는 div의 "p"유형의 마지막 요소이고 단락 4는 div의 마지막 "범위"이므로 단락 4와 단락 5 모두 빨간색 테두리가 있습니다.


1

안녕하세요 모두이 속성을 시도하십시오

$( "p span" ).last().addClass( "highlight" );

감사

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.