我有一个表格,想要克隆它但不包含其子元素。请注意,为了简洁起见,我省略了表格的许多属性和事件处理程序,它们也需要被复制。
<table data-x="..." class="a b c">
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
.
.
.
</table>
我不想复制全部内容然后再删除子元素,我不确定但是我认为这样并不高效。
我有一个表格,想要克隆它但不包含其子元素。请注意,为了简洁起见,我省略了表格的许多属性和事件处理程序,它们也需要被复制。
<table data-x="..." class="a b c">
<tr>...</tr>
<tr>...</tr>
<tr>...</tr>
.
.
.
</table>
我不想复制全部内容然后再删除子元素,我不确定但是我认为这样并不高效。
我认为你不能仅使用 jQuery
克隆元素而不包括其子元素,但是你可以使用纯JavaScript的方式来实现。使用 node.cloneNode()
方法即可。但是此方法不会复制附加的事件监听器。
我认为你应该使用cloneNode()。
var $table = $('table');
var clone = $table[0].cloneNode(); //without deep property
演示:Fiddle
注意:任何jQuery监听器和相关数据都不会被复制
var newtable = $('table').clone();
newtable.find('tr').remove(); // or you can remove anything you want to remove from it
现在在新表中,您将拥有一个没有任何行的表格。 希望这能起作用。
你可以轻松地使用jQuery .clone()
来完成它:
var $new_table = $('table').clone();
$newtable.html(''); // which returns <table></table>
var $new_table = $('<table/>');
。 - kosmos.cloneNode()
:var $new_table = $('table')[0].cloneNode()
。 - kosmos<div id='tabdiv'>
</div>
简单的jQuery代码:
$('#tabdiv').html('<table></table');
这将在具有该新表的div中创建一个新的空表
jQuery
没有这个功能,但你可以使用纯JavaScript实现。使用node.cloneNode()
方法。但是这种方法不会复制附加的事件监听器 - https://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode - Vigneswaran Marimuthu