在jQuery中克隆一个没有子元素的元素

时间:2015-05-14 06:08:42

标签: javascript jquery

我有一张桌子,我希望在没有孩子的情况下克隆它。请注意,为简洁起见,我简化了标记,该表有许多属性和事件处理程序,我也想复制它。

<table data-x="..." class="a b c">
    <tr>...</tr>
    <tr>...</tr>
    <tr>...</tr>
    .
    .
    .
</table> 

我不想复制所有内容然后删除孩子,我不确定,但我觉得它效率不高。

5 个答案:

答案 0 :(得分:7)

我不认为你可以在没有使用jQuery的孩子的情况下克隆元素,但你可以使用纯JavaScript来实现。 node.cloneNode()。这不会复制附加的事件侦听器

cloneNode

答案 1 :(得分:3)

我认为你应该使用cloneNode()

var $table = $('table');
var clone = $table[0].cloneNode(); //without deep property

演示:Fiddle

注意:任何jQuery侦听器和相关数据都不会被复制

答案 2 :(得分:-1)

您可以使用jQuery .clone()轻松完成:

var $new_table = $('table').clone();
$newtable.html(''); // which returns <table></table>

答案 3 :(得分:-1)

如果我认为那么您可以使用jquery创建一个新表。由于您没有提供您正在使用的代码,我给您举个例子。

<div id='tabdiv'>
</div>

简单的jquery代码:

$('#tabdiv').html('<table></table');

这将使用此新表

在div中创建一个新的空表

答案 4 :(得分:-1)

试试这个:如果你不需要它们,你可以删除它们。

var newtable = $('table').clone();
newtable.find('tr').remove(); // or you can remove anything you want  to remove from it

现在在新表中,您将拥有没有任何行的表。 希望这有效。