我有以下HTML。
<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')
答案 0 :(得分:1)
children
的工作方式,它接受元素的所有直接子元素,然后将它们全部与选择器相匹配。所有直接子项都不匹配选择器tfoot tr
。
实际上,没有任何情况下这个选择器可以匹配直接的孩子,因为它真的与自己相矛盾。它要求直接的孩子是后代的后代。 (基本上是一个至少也是孙子的直接孩子)。
我相信这会做你想做的事情:
$('#startingPoint').parent().next().find('> tfoot > tr')
请注意>
是子选择器。这将获得tr
的任何tfoot
,它是{{1}}的直接子项,它是该表的直接子项。