다음과 같은 테이블 구조가 있습니다.
<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
. 불행히도 나는 이것을 사용할 수 없습니다.
누구든지 이것에 대해 좋은 생각이 있습니까?
감사.
답변
답변
@ jave.web이 의견에서 언급했듯이
요소의 직계 자식을 검색하려면을 사용하십시오 .children()
. 직계 자식 만 검색하고 더 깊은 곳으로 이동하지 않습니다. http://api.jquery.com/children/
답변
이것이 바로 중첩 테이블에주의해야하는 이유입니다. 페이지 레이아웃이 아닌 데이터에 사용하기를 바랍니다.
당신의 하루를 망칠 수있는 또 다른 문제는 중첩 된 테이블에서 CSS 선택기를 사용하는 것입니다. 기본적으로 동일한 문제가 있습니다. 내부 테이블 내의 요소를 선택하지 않고는 외부 테이블의 TR 요소를 선택할 수도 없습니다. (IE6에서 구현되지 않았기 때문에 자식 선택기를 사용할 수 없습니다.)
이것은 작동합니다.
$("#table1 > tbody > tr")
그러나 TBODY 요소를 작성하는 데 브라우저에 의존해서는 안되므로 하드 코딩하는 것이 좋습니다.
답변
http://api.jquery.com/child-selector/
$('tb1 > tr')
답변
두 요소의 ID가 있고 직접 요소를 찾으려면 코드 아래에서 사용하십시오.
$("#parent > #two")
중첩 검색을 원하면 find를 사용할 수 있습니다. 여기에서 자세히 설명합니다.
https://handyopinion.com/jquery-selector-find-nested-child-elements/