修改 我决定不使用克隆,因为它似乎超越了我的知识水平。但建议我不要删除一个问题所以这个问题就在这里。
我有两个表,一个是数据填充,另一个是空。我正在使用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);
并且它复制了除数据之外的元素,但是当我尝试在复制的元素中删除第二个数据时,我无法解决这个问题。
非常感谢任何帮助/想法,如果对我想做的事情有不同/更好的方法,建议也会受到赞赏。提前谢谢你。
答案 0 :(得分:0)
试试这个:
var $cloned = $("tr").clone().children().text("").end();