其实这个题目没啥好写的,本来想搜一下看看网上有没有流传着现成的写法。
但是搜了好几页也没看见太简洁的。
就随手自己写了一个。用于实现软件筛选相关的DOM操作
当第一个软件安装之后,让它跟后面的软件替换一下位置,如图所示:
开始是打算交换彼此的html,但是这样的话 li上相关的属性还要再次进行操作,还是移动他们的位置好了。
于是有如下代码:
var exchange = function(a,b){
var n = a.next(), p = b.prev();
b.insertBefore(n);
a.insertAfter(p);
var n = a.next(), p = b.prev();
b.insertBefore(n);
a.insertAfter(p);
};
这样写的前提是知道 a的序列比b要靠前,这样 a 肯定有next() , 而b 也至少有 prev();
注意 先缓存插入的位置标记,否则一次dom移动之后,参照位就变了。