克隆元素而不是数据

时间:2014-04-25 03:26:36

标签: jquery copy

修改 我决定不使用克隆,因为它似乎超越了我的知识水平。但建议我不要删除一个问题所以这个问题就在这里。

我有两个表,一个是数据填充,另一个是空。我正在使用draggable和droppable jquery ui,所以我可以将数据从第一个表移动到另一个表。它的工作完美。现在,我正在尝试克隆" tr"使用.clone()删除数据时正在复制数据的第二个表的元素,克隆工作除了克隆数据,我不想要克隆tr元素。

这是html。

<div id="contact-list">
<table class="contact-list-table">
    <thead>  
        <th>Name</th>
    </thead>
    <tbody>
        <tr id="1"><td>Nora Marzuki</td></tr>
        <tr id="2"><td>Tunku Imran</td></tr>
        <tr id="3"><td>Iman Nong</td></tr>
    </tbody>
  </table>
  </div>
    <div id="guest-list">
    <table class="guest-list-table">
    <thead>
        <th>Guest</th>
    </thead>
    <tbody>
        <form>
            <tr><td><input name="guest" readonly /></td></tr>
        </form>
    </tbody>
</table>
</div>

jquery的

<script type="text/javascript">
$(document).ready(function(){
var c = {};
$("#contact-list tr").draggable({
        helper: "clone",
        start: function(event, ui) {
            c.tr = this;
            c.helper = ui.helper;
        }
});
$("#guest-list tr").droppable({
    drop: function(event, ui) {
        var guest = ui.draggable.text();
        var copy = $(this);
        $(this).find("input").val(guest);
        copy.closest('tr').clone(true).prependTo(copy.closest('.guest-list-table'));
        $(c.tr).remove();
        $(c.helper).remove();
    }
   });
  });
  </script>

此行用于复制,它复制数据以及元素:

var copy = $(this);
copy.closest('tr').clone(true).prependTo(copy.closest('.guest-list-table'));

然后我尝试了:

var copy = $(this);
copy.clone(true).find(":input").val("").end().insertAfter(copy);

并且它复制了除数据之外的元素,但是当我尝试在复制的元素中删除第二个数据时,我无法解决这个问题。

非常感谢任何帮助/想法,如果对我想做的事情有不同/更好的方法,建议也会受到赞赏。提前谢谢你。

1 个答案:

答案 0 :(得分:0)

试试这个:

var $cloned = $("tr").clone().children().text("").end();