让我们假设你有一个表,下面的jQuery代码关于Jquery的附加功能
var rows = $('#ttable').find('tbody > tr').get();
$('#ttable tbody').append(rows[1]);
右行对象获取所有的“TR”。第二行,将行[1]附加到表体,所以你应该把它放在表的最后。
它工作正常,但原始行消失。为什么?这意味着,行不重复,它只是移动。 为什么?以及如何解决?
让我们假设你有一个表,下面的jQuery代码关于Jquery的附加功能
var rows = $('#ttable').find('tbody > tr').get();
$('#ttable tbody').append(rows[1]);
右行对象获取所有的“TR”。第二行,将行[1]附加到表体,所以你应该把它放在表的最后。
它工作正常,但原始行消失。为什么?这意味着,行不重复,它只是移动。 为什么?以及如何解决?
jQuery的附加功能使用Node.appendChild()引擎盖下等的行为同样
从MDC
将节点添加到指定父节点的子项列表的末尾。如果节点已经存在,则将其从当前父节点中删除,然后添加到新的父节点。
所以像cobbal说,你要克隆该行并追加克隆
也许是因为rows [1]指的是已经插入到表中并注册在DOM中的对象。尝试克隆该对象并添加为一个新的。
或者你可以尝试水木清华这样的:
$('#ttable tr:first').before('<tr>...</tr>')
,如果你第一次克隆它,它会做你想要什么:
var rows = $('#ttable').find('tbody > tr');
$('#ttable tbody').append(rows.eq(1).clone());
注意,行不再是一个元素的数组,但由于该代码jQuery的不使用get()!这就是eq()和clone()方法可用的原因。 – 2010-02-06 09:56:39