如何通过jQuery函数获得直接的子元素

我有这样的表结构:

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

在JavaScript中,我有一个值为$(table1)的variablestbl ,然后我想要获取table1<tbody>的所有直接子元素(tr)。 我的代码是:

 $('tr', tb1) 

显然它返回table1和table2中的所有<tr>元素。 我想我可以走了

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

或者这种逻辑。

我知道$('table1 > tbody > tr')可以得到直接的孩子tr 。 不幸的是我不能使用这个。

任何人都有这个好主意?

谢谢。

你可以使用find()

tbl.find("> tbody > tr")

正如@ jave.web在评论中提到的那样

要通过元素的直接子元素来search.children() 。 它只会搜寻直接的孩子,而不会深入。 http://api.jquery.com/children/

这正是为什么一个人应该小心嵌套表的原因。 我真的希望你使用他们的数据,而不是页面布局。

另一个可能会毁了你一天的问题是在嵌套表上使用CSSselect器…你基本上有同样的问题 – 你不能select外部表的TR元素,也不select内部表中的TR元素。 (你不能使用子select器,因为它没有在IE6中实现)

这应该工作:

 $("#table1 > tbody > tr") 

不过,我build议您对TBODY元素进行硬编码,因为您不应该依靠浏览器为您创build它。