如何通过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它。
http://api.jquery.com/child-selector/
$('tb1 > tr')