我有两个清单。所有列表项都具有唯一ID。用户可以在每个列表中选择列表项,然后单击顶部的按钮以在列表之间交换所选项。列表可能包含单个列表项,因此我无法使用insertBefore()
。
我使用以下代码:
$('#button').on('click', function(){
var oldnode = $('#chapters .path');
var newnode = $('#topics .active');
var oldid = oldnode.attr('id');
var newid = newnode.attr('id');
var oldinner = oldnode.html();
var newinner = newnode.html();
var oldclass = oldnode.attr('class');
var newclass = newnode.attr('class');
oldnode.html(newinner).attr('class',newclass).attr('id',newid);
newnode.html(oldinner).attr('class',oldclass).attr('id',oldid);
});
演示:JSFiddle
这有效,但我需要一个更好的解决方案,因为将来列表项的属性数量可能会增加,并且需要太多行。
谢谢!