我的HTML代码是这样的:
<div class="content">
box 1 (Customer)
<ol class='example mauDIDROP vertical'>
<li>Valentino Rossi</li>
<li>David Beckham</li>
<li>Eden Hazard</li>
<li>Lionel Messi</li>
<li>Christiano Ronaldo</li>
<li>Frank Lampard</li>
</ol>
</div>
<div class="content">
<form id="myForm" action="" method="POST">
box 2 (Room Type)
<br>
<select id="room_type">
<option value="1">Single Room</option>
<option value="2">Double Room</option>
<option value="3">Twin Room</option>
</select>
<input type="button" value="Add" style="margin-top: -10px;" id="add_room">
<ol class="example areaDROP vertical" id="room_list">
<li class="room_number msg1" id="room_remove11">Deluxe Room<div class="room-remove"><a href="javascript:void(0)" onclick="delete_room(11)"><i class="fa fa-times"></i></a></div><ol><li id="room_remove21">John Terry<div class="room-remove"><a href="javascript:void(0)" onclick="delete_room(21)"><i class="fa fa-times"></i></a></div></li></ol></li>
<li class="room_number msg1" id="room_remove12">Family Room<div class="room-remove"><a href="javascript:void(0)" onclick="delete_room(12)"><i class="fa fa-times"></i></a></div><ol><li id="room_remove22">Jose Mourinho<div class="room-remove"><a href="javascript:void(0)" onclick="delete_room(22)"><i class="fa fa-times"></i></a></div></li></ol></li>
</ol>
<button type="submit">Save</button>
</form>
</div>
我的Javascript是这样的:
function delete_room(id){
$('#room_remove'+id).remove();
}
$(document).ready(function(){
$("ol.mauDIDROP").sortable({
group: '.example'
});
$("ol.areaDROP").sortable({
group: '.example',
});
var room_type_number = 5;
$('#add_room').click(function(){
var text = $("#room_type option:selected").html();
var room_type_id = $.trim($('#room_type').val());
$('#room_list').append('<li class="room_number msg" id="room_remove'+(++room_type_number)+'" data-id="'+room_type_id+'" data-name="'+text+'">'+text+'<div class="room-remove"><a href="javascript:void(0)" class="remove'+room_type_id+'" onclick="delete_room('+room_type_number+')"><i class="fa fa-times"></i></a></div><ol></ol></li>');
$("ol.mauDIDROP").sortable({
group: '.example'
});
$("ol.areaDROP").sortable({
group: '.example',
});
});
});
演示是这样的:https://jsfiddle.net/oscar11/4wnfnz6z/1/
当我点击关闭图标时,所选元素已成功删除。
但我想要的是: 当我点击关闭图标时,所选元素被删除,删除的客户元素出现在方框1中。
当我点击关闭图标(豪华房间)时,它将如下所示:http://imgur.com/YpkBTKH
如何将已删除的客户元素移至方框1?
有什么建议可以解决我的问题吗?
谢谢
答案 0 :(得分:2)
您可以更改delete_room
功能,以便从您要删除的房间中获取客户名称,然后将其作为li
附加到您的左侧容器中:
function delete_room(id){
var customers = '';
$('#room_remove'+id).find('li').each( function() {
customers += '<li>'+$(this).text()+'</li>';
});
$('#room_remove'+id).remove();
$('ol.example.mauDIDROP.vertical').append(customers);
}
检查小提琴:Fiddle
答案 1 :(得分:0)
这种方法具有更好的性能,因为您将find设置为var并执行循环而不是使用find进行循环。
var child = $('#room_remove'+id).find('li');
if(child.length > 0){
var li = "";
child.each(function(){
li += "<li>"+$(this).text()+"</li>";
});
}
$(".mauDIDROP").append($(li));