2013-03-13 2 views
0

다음 HTML을 가지고 있습니다.jQuery children() tfoot tr 요소를 선택하지 않았습니다.

<div> 
    <table></table> 
    <div><table id="startingPoint"></table></div> 
    <table><tfoot><tr id="getThis"></tr></tfoot></table> 
</div> 

find()를 사용하면 #getThis가 예상대로 선택됩니다.

$('#startingPoint').parent().next().find('tfoot tr') 

children()을 사용하면 #getThis가 선택되지 않습니다. 왜?

$('#startingPoint').parent().next().children('tfoot tr') 
+3

tr 요소는 테이블의 자식이 아니며'children '으로 선택할 수 없습니다. 직접 자식을 검색하지 않으면'find'를 사용해야합니다 –

+0

@Darhazer. tr이 직접적인 아이가 아니라 tfoot tr이 하나라고 해석 될 것으로 예상했다. – user1032531

+0

그래서 $ ('# startingPoint'). parent(). next(). children ('tfoot'). children ('tr')'? – user1032531

답변

1

방법 children 작품, 그것은 요소의 직계 자식을 모두 소요하고 선택에 대해 모두 일치합니다. 직접 아동 중 어느 것도 선택자 tfoot tr과 일치하지 않습니다.

실제로이 선택기가 직접 자식을 실제로 그 자체와 모순되는 상황은 없습니다. 그것은 자손의 후손 인 직계 자녀들을 요구하고 있습니다. (본질적으로 최소한 손자 인 직계 자녀).

나는 이것이 당신이 무엇을하려고 할 것이라고 생각 : > 아이 선택기입니다

$('#startingPoint').parent().next().find('> tfoot > tr') 

하는 것으로. 그러면 테이블의 직접 하위 인 tfoot의 직접 하위 인 tr이 표시됩니다.

+0

James에게 감사드립니다. 당신이 내 질문에 대답했을뿐만 아니라, 내가 알지 못했던'>'선택자에 대해 가르쳐 주셨습니다. – user1032531

관련 문제