your programing

jQuery 함수로 직접 자식 요소 만 가져 오는 방법

lovepro 2020. 10. 11. 11:06
반응형

jQuery 함수로 직접 자식 요소 만 가져 오는 방법


다음과 같은 테이블 구조가 있습니다.

<table1>
  <tbody>
    <tr>
      <td></td>
        ...
      <td>
        <table2>
          <tbody>
            <tr>
              <td></td>
            </tr>
          </tbody>
        </table>
      </td>
    </tr>
   </tbody>
  </table>

자바 스크립트, 나는 변수가 tbl의 값을 $(table1), 그리고 나는 모든 직접 하위 요소 (TR) 싶어 <tbody>의를 table1. 내 코드는 다음과 같습니다.

$('tr', tb1)

분명히 그것은 <tr>table1과 table2의 모든 요소를 반환합니다 . 나는 얻을 수 있다고 생각

$('tr', tb1).not(function(){return $(this).parent().parent()[0] != tb1;})

또는 이런 종류의 논리.

나는 $('table1 > tbody > tr')직접적인 아이를 얻을 수 있다는 것을 압니다 tr. 불행히도 나는 이것을 사용할 수 없습니다.

누구든지 이것에 대해 좋은 생각이 있습니까?

감사.


다음을 사용할 수 있습니다 find().

tbl.find("> tbody > tr")


@ jave.web이 의견에서 언급했듯이

요소의 직계 자식을 검색하려면을 사용하십시오 .children(). 직계 자식 만 검색하고 더 깊은 곳으로 이동하지 않습니다. http://api.jquery.com/children/


이것이 바로 중첩 테이블에주의해야하는 이유입니다. 페이지 레이아웃이 아닌 데이터 용으로 사용하시기 바랍니다.

당신의 하루를 망칠 수있는 또 다른 문제는 중첩 된 테이블에서 CSS 선택기를 사용하는 것입니다. 기본적으로 동일한 문제가 있습니다. 내부 테이블 내부의 요소를 선택하지 않고는 외부 테이블의 TR 요소를 선택할 수도 없습니다. (IE6에서 구현되지 않았기 때문에 자식 선택기를 사용할 수 없습니다.)

이것은 작동합니다.

$("#table1 > tbody > tr")

그러나 TBODY 요소를 작성하는 데 브라우저에 의존해서는 안되므로 하드 코딩하는 것이 좋습니다.


http://api.jquery.com/child-selector/

$('tb1 > tr')

참고 URL : https://stackoverflow.com/questions/3687637/how-to-get-only-direct-child-elements-by-jquery-function

반응형