关于Jquery追加功能

时间:2010-02-06 09:26:59

标签: jquery

假设您有一个表和以下Jquery代码

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

对行对象获取所有“tr”。第二行,将row [1]追加到表体,所以你应该把它放在表的末尾。

它工作正常,但原来的行消失了。为什么?这意味着,行不重复,它只是移动。 为什么?以及如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

如果你先克隆它,它会做你想要的:

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

答案 1 :(得分:1)

可能因为rows [1]引用已经插入到表中并在DOM中注册的对象。尝试克隆该对象并添加为新对象。

或者你可以尝试这样的smth:

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

答案 2 :(得分:0)

jQuery的追加功能在引擎盖下使用Node.appendChild(),所以行为方式相同

来自MDC

  

将节点添加到指定父节点的子节点列表的末尾。如果该节点已存在,则将其从当前父节点中删除,然后添加到新的父节点。

就像cobbal所说的那样,你必须克隆行并附加克隆