我有一个这样的表结构:
<table1>
<tbody>
<tr>
<td></td>
...
<td>
<table2>
<tbody>
<tr>
<td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
在javascript中,我有一个值为$(table1)
的变量tbl
,然后我希望获得table1
的<tbody>
的所有直接子元素(tr)。我的代码是:
$('tr', tb1)
显然,它返回table1和table2中的所有<tr>
元素。我想我能过得去。
$('tr', tb1).not(function(){return $(this).parent().parent()[0] != tb1;})
或者这种逻辑。
我知道$('table1 > tbody > tr')
可以获得直接的子tr
。不幸的是,我不能使用这个。
有人对此有好的想法吗?
谢谢。
发布于 2010-09-11 03:23:27
您可以使用find()
tbl.find("> tbody > tr")
发布于 2015-06-23 05:36:46
正如@jave.web在评论中提到的那样
要搜索元素的直接子元素,请使用.children()
。它将只搜索直接的子级,而不会遍历更深的部分。http://api.jquery.com/children/
发布于 2010-09-11 03:27:59
这就是为什么要小心嵌套表的原因。我真的希望你用它们来做数据,而不是页面布局。
另一个可能会毁了你一天的问题是在嵌套表上使用CSS选择器……基本上也有同样的问题--如果不选择内表中的TR元素,就无法选择外层表中的TR元素。(不能使用子选择器,因为它不是在IE6中实现的)
这应该是可行的:
$("#table1 > tbody > tr")
但是,我建议您硬编码TBODY元素,因为您不应该依赖浏览器为您创建它。
https://stackoverflow.com/questions/3687637
复制相似问题