2010-11-05 78 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.