2010-02-06 81 views
0

讓我們假設你有一個表,下面的jQuery代碼關於Jquery的附加功能

var rows = $('#ttable').find('tbody > tr').get(); 
$('#ttable tbody').append(rows[1]); 

右行對象獲取所有的「TR」。第二行,將行[1]附加到表體,所以你應該把它放在表的最後。

它工作正常,但原始行消失。爲什麼?這意味着,行不重複,它只是移動。 爲什麼?以及如何解決?

回答

0

jQuery的附加功能使用Node.appendChild()引擎蓋下等的行爲同樣

從MDC

將節點添加到指定父節點的子項列表的末尾。如果節點已經存在,則將其從當前父節點中刪除,然後添加到新的父節點。

所以像cobbal說,你要克隆該行並追加克隆

1

也許是因爲rows [1]指的是已經插入到表中並註冊在DOM中的對象。嘗試克隆該對象並添加爲一個新的。

或者你可以嘗試水木清華這樣的:

$('#ttable tr:first').before('<tr>...</tr>') 
3

,如果你第一次克隆它,它會做你想要什麼:

var rows = $('#ttable').find('tbody > tr'); 
$('#ttable tbody').append(rows.eq(1).clone()); 
+0

注意,行不再是一個元素的數組,但由於該代碼jQuery的不使用get()!這就是eq()和clone()方法可用的原因。 – 2010-02-06 09:56:39