2010-11-05 79 views
1

我有一个表,与一些嵌套表(这是输出但DOTNET控制我不能做任何事情)获取直接的儿童使用jQuery

我要的是把所有那些直接孩子,但这样的行远不如我想象的那样工作。

我有一个基本的设置,只是需要的所有行,还从嵌套表的那些,我评论了其他几个人我修整未取得理想的结果

我想要什么,它移动完整的行,即使该行有一个嵌套表,它不指望在片功能,在该表中的行

您可以在jsfiddle

看到我设置任何帮助,将不胜感激

回答

2

您可以使用在所有情况下:not(),或child selector (>),如果你知道你的标记条件:

$('#tblPropertyDetail tr:not(tr tr)').slice(0, 40).appendTo(".one"); 

You can test it here。另一种方法是:

$('#tblPropertyDetail > tr').slice(0, 40).appendTo(".one"); 

然而,这可能会或可能无法正常工作取决于你的DOCTYPE,这取决于是否<tbody>元素它在那里为你添加(例如,在XHTML推断)。为了自己的安全添加<tbody>和做到这一点:

$('#tblPropertyDetail > tbody > tr').slice(0, 40).appendTo(".one"); 
+0

谢谢我以为我有用$('#tblPropertyDetail tr:not(:has(tr))'覆盖的顶级解决方案,但你的工作很完美 – nokiko 2010-11-05 18:13:43

1

$('#tableID > * > tr, #tableID > tr')

只记得*因为的JavaScript浏览器会自动将TBODY元素。

编辑:
更正了自动添加tbody元素的错误。

+0

JavaScript不会自动添加任何东西,它是DOCTYPE决定它是否由解析器推断。 – 2010-11-05 18:23:08

0

我知道我的答案有点晚,jQuery已经发展了,但现在有更好的方法来做,只需调用children()! :)

$('#tblPropertyDetail').children().appendTo(".one"); 

您甚至可以将选择器添加到children()方法。

Here's the doc about children() in jQuery.