.closest (selector)

· 8년 전 · 1631

.closest (selector)


설명 : 집합의 각 요소에 대해 요소 자체를 테스트하고 DOM 트리에서 조상을 통해 위로 이동하여 선택기와 일치하는 첫 번째 요소를 가져옵니다.


DOM 요소 집합을 나타내는 jQuery 객체가 주어지면이 .closest()메소드는 DOM 트리에서 이러한 요소와 조상을 검색하고 일치하는 요소에서 새 jQuery 객체를 생성합니다. .parents()및 .closest()방법은 모두 DOM 트리를 횡단 점에서 유사하다. 이 둘의 차이는 미묘하지만 중요합니다.


<ul id="one" class="level-1">

  <li class="item-i">I</li>

  <li id="ii" class="item-ii">II

    <ul class="level-2">

      <li class="item-a">A</li>

      <li class="item-b">B

        <ul class="level-3">

          <li class="item-1">1</li>

          <li class="item-2">2</li>

          <li class="item-3">3</li>

        </ul>

      </li>

      <li class="item-c">C</li>

    </ul>

  </li>

  <li class="item-iii">III</li>

</ul>

<ul>항목 A에서 시작 하는 요소를 검색한다고 가정 해 보겠습니다 .


$( "li.item-a" )

  .closest( "ul" )

  .css( "background-color", "red" );

레벨 2의 색상이 변경 <ul>됩니다. DOM 트리 위로 올라갈 때 처음으로 발생하기 때문입니다.


<li>대신 에 요소를 검색한다고 가정 해보십시오 .



$( "li.item-a" )

  .closest( "li" )

  .css( "background-color", "red" );

이렇게하면 목록 항목 A의 색상이 변경 .closest()됩니다 . 메서드는 DOM 트리를 진행하기 전에 요소 자체에서 검색 을 시작하고 항목 A가 선택기와 일치하면 중지합니다.


가장 가까운 요소를 검색 할 컨텍스트로 DOM 요소를 전달할 수 있습니다.


var listItemII = document.getElementById( "ii" );

$( "li.item-a" )

  .closest( "ul", listItemII )

  .css( "background-color", "red" );

$( "li.item-a" )

  .closest( "#one", listItemII )

  .css( "background-color", "green" );

목록 항목 A <ul>의 첫 번째 상위 <ul>항목이고 목록 항목 II의 하위 항목 이기 때문에 레벨 2의 색상이 변경됩니다 . <ul>그러나 목록 항목 II의 하위 항목이 아니기 때문에 레벨 -1의 색상은 변경 되지 않습니다.

|
댓글을 작성하시려면 로그인이 필요합니다. 로그인

개발자팁

개발과 관련된 유용한 정보를 공유하세요. 질문은 QA에서 해주시기 바랍니다.

+
분류 제목 글쓴이 날짜 조회
jQuery 8년 전 조회 1,627
jQuery 8년 전 조회 1,636
jQuery 8년 전 조회 1,823
jQuery 8년 전 조회 1,334
jQuery 8년 전 조회 2,122
jQuery 8년 전 조회 1,579
jQuery 8년 전 조회 1,777
jQuery 8년 전 조회 1,763
jQuery 8년 전 조회 2,051
jQuery 8년 전 조회 1,979
jQuery 8년 전 조회 1,483
jQuery
[jQuery]
8년 전 조회 1,950
PHP 8년 전 조회 6,941
jQuery 8년 전 조회 2,595
jQuery 8년 전 조회 1,632
jQuery 8년 전 조회 1,713
jQuery 8년 전 조회 1,854
jQuery 8년 전 조회 1,344
jQuery 8년 전 조회 1,900
jQuery 8년 전 조회 1,653
jQuery 8년 전 조회 1,940
jQuery 8년 전 조회 2,002
jQuery 8년 전 조회 1,622
jQuery 8년 전 조회 1,635
jQuery 8년 전 조회 1,589
jQuery 8년 전 조회 1,264
jQuery 8년 전 조회 1,427
jQuery 8년 전 조회 1,458
jQuery 8년 전 조회 1,373
jQuery 8년 전 조회 2,266
🐛 버그신고