programing

jquery, 클래스별로 다음 요소 찾기

iphone6s 2023. 9. 9. 09:09
반응형

jquery, 클래스별로 다음 요소 찾기

클래스별로 다음 요소를 어떻게 찾을 수 있을까요?

같이 해봤습니다.$(obj).next('.class');그러나 이것은 수업만 반환합니다.$(obj)부모.다음 요소는 클래스 이름으로 코드 전체 어디에나 가져가야 합니다.내 코드는 다음과 같습니다.

<table>
<tr><td><div class="class">First</div></td></tr>
<tr><td><div class="class">Second</div></td></tr>
</table>

가능한가요?

이 경우에는 당신은 다음 단계로 올라가야 합니다.<tr> 다음과 같이 사용합니다.

$(obj).closest('tr').next().find('.class');

또는 그 사이에 행이 있을 수도 있습니다..class안에서, 당신은 다음과 같이 사용할 수 있습니다:

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');

클래스가 같은 다음 요소를 찾는 방법:

$(".class").eq( $(".class").index( $(element) ) + 1 )

이 시나리오에서는 next()를 사용할 수 없습니다. 설명서를 보면 다음과 같습니다.
다음() Get the각 요소의 형제 바로 뒤에.일치하는 요소 집합에 포함됩니다.선택기가 제공되면 선택기와 일치하는 다음 형제를 검색합니다.

따라서 두 번째 DIV가 동일한 TD에 있을 경우 다음을 코드화할 수 있습니다.


// Won't work in your case
$(obj).next().filter('.class');

But since it's not, I don't see a point to use next(). You can instead code:

$(obj).parents('table').find('.class')

첫 번째 선택기가 주어지면:셀렉터 A, 셀렉터 B의 다음 매치는 아래와 같습니다.

마우스 오버를 사용하여 테두리를 변경하는 예:

$("SelectorA").on("mouseover", function() {
    var i = $(this).find("SelectorB")[0];
    $(i).css({"border" : "1px"});
    });
}

테두리를 변경하는 일반 사용 예제:

var i = $("SelectorA").find("SelectorB")[0];
$(i).css({"border" : "1px"});

태그 이름으로 다음 요소를 찾으려면

  function findNext(start, tag)
    {
      while(start.nodeName !== tag)
      {
            start = start.nextElementSibling;
      }
      return start;
    }

언급URL : https://stackoverflow.com/questions/3670136/jquery-find-next-element-by-class

반응형